Github Actions实现Npm包自动化发布

2022-03-28 10:00:06 浏览数 (1)

Tips:本文的自动化模板会自动更新package.json里的版本号,无需手动更新

但是更新版本号需要触发关键词,可以自定义关键词,详细请看phips28/gh-action-bump-version: GitHub Action for automated npm version bump.

因为我使用了XPoet/picx 项目所有加入了Picx关键词,来达到每次上传推送一次

npm 包发布其实很简单

代码语言:javascript复制
npm publish

前提是去注册个npm账户

不过有时候推了github,忘记发布npm,

或者发布了npm,却忘记推github,导致了代码数据不同步

为了和github代码实现同步,使用Github Actions

确保npm包在本地能正常发布

实现步骤

注册GitHub账户和新建仓库网上教程很多,为了节省时间就不阐述了

进入到仓库的Action页面

直接点击仓库上方的Actions按钮

创建CI任务

点击“new workflow” 选择Simple workflow

会自动创建yml并进入修改页面

修改yml,编辑工作流

代码语言:javascript复制
name: Publish to NPM

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  publish-to-npm:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout release branch code
        uses: actions/checkout@v2
        with:
          fetch-depth: 1

      - name: Get yarn cache
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"

      - name: Cache dependencies
        uses: actions/cache@v2
        id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Use Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org

      - name:  'Automated Version Bump'
        uses:  'phips28/gh-action-bump-version@master'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          default: prerelease
          rc-wording:     'RELEASE,alpha,PicX'

      - name: Publish to NPM
        run: npm publish || true
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

注册npm账户

npm | Sign Up (npmjs.com)

按照提示填写信息即可

创建npm token 并加入仓库变量

点击账户头像,跳出菜单后点击Access Tokens

点击Generate New Token

在创建密钥时注意一定要选择Automation一项,否则会提示输入密钥,导致推送失败

当密钥创建完成后会显示,需要注意的是只显示一次

复制密钥,回到仓库设置点击Secrets,然后点击New repository secret

Name填NPM_TOKEN,Value填复制的密钥

这时候Actions会报错,不过没关系,重新运行就行了

推送成功之后你会收到一封来自npm的邮件,说明已经推送成功

用到的相关项目

phips28/gh-action-bump-version: GitHub Action for automated npm version bump.

XPoet/picx: 基于 GitHub API & jsDelivr 开发的具有 CDN 加速功能的图床管理工具。无需下载与安装,网页端在线使用!免费!稳定!便捷!极速!

0 人点赞