最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • github Actions 自动发布npm版本 并创建release tag

    正文概述 掘金(bhabgs)   2021-03-04   852

    github Actions 自动发布npm版本 并创建release tag

    什么是 github Actions

    • github地址

    github Actions 自动发布npm版本 并创建release tag

    基本概念

    1. workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
    2. job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
    3. step(步骤):每个 job 由多个 step 构成,一步步完成。
    4. action (动作):每个 step 可以依次执行一个或多个命令(action)。

    创建第一个 workflow

    github Actions 自动发布npm版本 并创建release tag

    • 默认
    # name属性用来指定这个工作流的名字
    name: CI
    # 这个部分用来指定能够触发工作流执行的事件
    on:
      # 当对分支main进行push操作的时候,这个工作流就被触发了
      push:
        branches: [ master ]
      pull_request:
        branches: [ master ]
    
      workflow_dispatch:
    
    # 工作流是由一个或多个的jobs构成的,在jobs里来说明要交给GitHub aciton执行的任务
    jobs:
      # 这个jobs中的一个任务,名字叫build(随便怎么取)
      build:
        # 用来指定这个任务在什么操作系统上跑(服务器是GitHub免费提供的)
        runs-on: ubuntu-latest
    
        # 指出这个build任务的步骤
        steps:
          # github actions 自带插件主要是为了检出当前仓库的代码
          - uses: actions/checkout@v2
    
          # 一条shell 命令, name为该条命令的名字 随便取名字
          - name: Run a one-line script
            run: echo Hello, world!
    
          # 运行多条shell
            run: |
              echo Add other actions to build,
              echo test, and deploy your project.
    
    

    我的需求

    • 现在我们已经了解到我们的需求了,那么下面我们就要按照需求在书写workflow
    1. 第一步
    # name属性用来指定这个工作流的名字
    name: npm to deploy-vui and create release
    
    on:
      # 当对分支deploy-vui进行push操作的时候,触发该条工作流
      push:
        branches: [ deploy-vui ]
    
    1. 打包代码
    • 获取npm token
        1. 进入npm主页点击access Tokens
        github Actions 自动发布npm版本 并创建release tag
        1. 点击 Generate New Token 按钮,创建 token,一定要保存好token
    • 将npm token放入github项目的secrets github Actions 自动发布npm版本 并创建release tag
    # name属性用来指定这个工作流的名字
    name: npm to deploy-vui and create release
    
    on:
      # 当对分支deploy-vui进行push操作的时候,触发该条工作流
      push:
        branches: [ deploy-vui ]
    jobs:
      build-publish-release
      	runs-on: ubuntu-latest
        
        steps:
          - uses: actions/checkout@v2 # 先检出代码
            
          - name: 初始化node环境
            uses: actions/setup-node@v1
            with:
              node-version: ${{ matrix.node-version }}
              registry-url: https://registry.npmjs.org/ # 如果不配置将影响publish
              
          - name: 安装yarn # 因为我的代码采用了monorepo的 workspace形式 所以必须使用yarn
            run: npm i -g yarn
           
          - name: 安装依赖 # 使用yarn 安装依赖
            run: yarn
          
           - name: 编译部署ui
            working-directory: 'package/vitevui' # 因为代码采用的monorepo 所以需要进入包的目录来运行
            run: yarn build
            
          - name: publish # 向npm publish 代码 请遵循npm规范.
            working-directory: 'package/vitevui'
            env:
              NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} # 该token是 npm的token 获取npm token请查看 步骤2 的创建 npm token 和 将npm token 放入github的 secrets下
            run: npm publish
          # 到这如果全部成功,那么我们就成功的将代码发布到了npm
          
         
    
    • 第三步 读取package信息,并创建 release
    • gethub token 申请与npm token 一样,在github 设置中找到 Developer settings -> Personal access tokens, 新建一个新的 token,选择相应的权限。设置相应的secrets,请参照上面的 npm token 设置secrets

    github Actions 自动发布npm版本 并创建release tag

    # name属性用来指定这个工作流的名字
    name: npm to deploy-vui and create release
    
    on:
      # 当对分支deploy-vui进行push操作的时候,触发该条工作流
      push:
        branches: [ deploy-vui ]
    jobs:
      build-publish-release
      	runs-on: ubuntu-latest
        
        steps:
          - uses: actions/checkout@v2 # 先检出代码
            
          - name: 初始化node环境
            uses: actions/setup-node@v1
            with:
              node-version: ${{ matrix.node-version }}
              registry-url: https://registry.npmjs.org/ # 如果不配置将影响publish
              
          - name: 安装yarn # 因为我的代码采用了monorepo的 workspace形式 所以必须使用yarn
            run: npm i -g yarn
           
          - name: 安装依赖 # 使用yarn 安装依赖
            run: yarn
          
           - name: 编译部署ui
            working-directory: 'package/vitevui' # 因为代码采用的monorepo 所以需要进入包的目录来运行
            run: yarn build
            
          - name: publish # 向npm publish 代码 请遵循npm规范.
            working-directory: 'package/vitevui'
            env:
              NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} # 该token是 npm的token 获取npm token请查看 步骤2 的创建 npm token 和 将npm token 放入github的 secrets下
            run: npm publish
          # 到这如果全部成功,那么我们就成功的将代码发布到了npm
          
          # 下面主要是创建 github 的release
          # 使用 tyankatsu0105/read-package-version-actions@v1 工具来读取对应的package.json 数据
          - name: Read package.json
            uses: tyankatsu0105/read-package-version-actions@v1
            with:
              path: './package/vitevui'
            id: package-version
            
            # 关于创建 release 的更多参数,可以查看 actions/create-release@v1
          - name: Create Release for Tag
            id: release_tag
            uses: actions/create-release@v1
            env:
              GITHUB_TOKEN: ${{ secrets.PERSONAL_TOKEN }} # 这块需要用到 github的token,因为需要对分之进行代码推送
            with:
              tag_name: vitevui-v${{ steps.package-version.outputs.version }}
              release_name: Release vitevui-v${{ steps.package-version.outputs.version }}
              prerelease: false # 是否为预发布版本
              body: |
                请点击查看 [更新日志](https://bhabgs.github.io/vite-vui-docs/components/log.html).
         
    

    总结

    github 仓库地址


    起源地下载网 » github Actions 自动发布npm版本 并创建release tag

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元