前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github Actions实现Npm包自动化发布

Github Actions实现Npm包自动化发布

原创
作者头像
半年前的自己
修改2022-03-28 10:00:06
1.5K2
修改2022-03-28 10:00:06
举报
文章被收录于专栏:B‘s Study Notes

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 加速功能的图床管理工具。无需下载与安装,网页端在线使用!免费!稳定!便捷!极速!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现步骤
    • 进入到仓库的Action页面
    • 创建CI任务
      • 修改yml,编辑工作流
      • 注册npm账户
      • 创建npm token 并加入仓库变量
      • 用到的相关项目
      相关产品与服务
      内容分发网络 CDN
      内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档