用 GitHub Actions 實現(xiàn)自動發(fā)布 NPM 包

一、前置條件

1.1 生成 NPM TOKEN

生成好了大概長這個樣子 1c14ee16-xxxx-4ae3-b09f-faca87axxxx (注:已做脫敏處理)

1.2 加入 GitHub 項目的 secrets 里

二摧冀、編寫 GitHub Actions 腳本

在你項目里創(chuàng)建 .github/workflows/main.yml 文件税稼,內(nèi)容如下:

name: Next release

on:
  push:
    branches: [ release ]
  pull_request:
    branches: [ release ]

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@v1.2.0
        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@v1.4.2
        with:
          node-version: 12
          registry-url: https://registry.npmjs.org

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

#  publish-to-gpr:
#    runs-on: ubuntu-latest
#    steps:
#      - name: Checkout release branch code
#        uses: actions/checkout@v2
#
#      - name: Use Node.js
#        uses: actions/setup-node@v1.4.2
#        with:
#          node-version: 12
#          registry-url: https://npm.pkg.github.com/
#
#      - name: Publish to GitHub Package
#        run: npm publish
#        env:
#          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

完整內(nèi)容:https://github.com/Kennytian/tradex/blob/release/.github/workflows/main.yml

腳本解釋:

  • 兩個 release 表示向該分支 push 或提 PR 都會發(fā)布新的 NPM 版本
  • registry-url: https://registry.npmjs.org 表示 NPM 發(fā)布的目標(biāo)地址(現(xiàn)在可向 GitHub 發(fā) NPM 包)
  • npm publish || true 是不是特別熟悉,這其實是一條 Linux 命令秧荆,表示左邊的命令執(zhí)行失敗,就執(zhí)行后面的 true (這里有個坑,如果不加這個||难审,雖然能發(fā)布生成,但 Actions 一直會報錯亿絮,讓我很不解告喊。如果您知道原因,請告之派昧,錯誤詳情:https://github.com/Kennytian/tradex/runs/640232951?check_suite_focus=true
  • NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 表示 NPM 發(fā)布調(diào)用 TOKEN黔姜,這個 TOKEN 就是我們向 GitHub 里添加的secrets 值

三、額外知識點

最近在學(xué)習(xí) Linux蒂萎,發(fā)現(xiàn)一個很好的視頻教程秆吵,現(xiàn)分享給大家:https://www.bilibili.com/video/BV1mW411i7Qf?p=68

文中運用到的||,詳解如下:

全文完五慈!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纳寂,一起剝皮案震驚了整個濱河市主穗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毙芜,老刑警劉巖忽媒,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異腋粥,居然都是意外死亡猾浦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門灯抛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來金赦,“玉大人,你說我怎么就攤上這事对嚼〖锌梗” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵纵竖,是天一觀的道長漠烧。 經(jīng)常有香客問我,道長靡砌,這世上最難降的妖魔是什么已脓? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮通殃,結(jié)果婚禮上度液,老公的妹妹穿的比我還像新娘。我一直安慰自己画舌,他們只是感情好堕担,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著曲聂,像睡著了一般霹购。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朋腋,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天齐疙,我揣著相機與錄音,去河邊找鬼旭咽。 笑死贞奋,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轻专。 我是一名探鬼主播忆矛,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了催训?” 一聲冷哼從身側(cè)響起洽议,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漫拭,沒想到半個月后亚兄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡采驻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年审胚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礼旅。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡膳叨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痘系,到底是詐尸還是另有隱情菲嘴,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布汰翠,位于F島的核電站龄坪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏复唤。R本人自食惡果不足惜健田,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佛纫。 院中可真熱鬧妓局,春花似錦、人聲如沸雳旅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攒盈。三九已至,卻和暖如春哎榴,著一層夾襖步出監(jiān)牢的瞬間型豁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工尚蝌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迎变,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓飘言,卻偏偏與公主長得像衣形,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353