簡體   English   中英

發布 NPM package 時如何在 JFrog CLI 中包含版本號?

[英]How to include version number in JFrog CLI when publishing NPM package?

我最近一直在使用 JFrog CLI 工具來將我們的 NPM package 上傳到我們公司的工件,這工作正常,但是它需要一些“丑陋”的解決方案,在我們的 ZD3B7C913CD04EBFEC0 管道中手動重命名以獲取其他操作等它可以按我的意願工作,但在我對上傳過程感到滿意之前,我還有一個問題。

問題是上傳到工件的 .tgz 文件不包括文件名中的版本,因此它不是被稱為file-name-1.0.0.tgz它只是file-name.tgz 這會造成問題,因為我們無法訪問工件上舊版本的 package。

目前我們在 GitHub 動作中的管道看起來像這樣(總結):

(在 linux 虛擬機上運行,可以訪問我們的 npm 注冊表)

  1. npm安裝
  2. 設置一個 GitHub 機器人來提升版本並將其推送到 repo
  3. 構建發布包
  4. 使用 Githubs 自己的上傳工件操作創建工件(在下一個工作流程中使用)
  5. npm 發布(到我們的私有注冊表)
  6. 然后我們單獨的部署管道在發布后處理 rest

此工作流完成后,將觸發第二個工作流上傳到 JFrog 工件,使用帶有工件憑據的自托管 linux 運行器。

  1. 設置 JFrog CLI(帶有訪問令牌)
  2. 下載 package 使用 GitHub 自己的下載神器動作的神器
  3. 創建版本字符串變量(例如“1.0.1-alpha.1”)
    - name: Create version string variable
        run: |
          PACKAGEVERSION=`jq -r .version package/package.json`
          echo $PACKAGEVERSION
  1. 使用a7ul/tar-action@v1.1.0將 package A 壓縮為名為“package-a.tgz”的 tar 文件
  2. 重命名 .tgz 文件以包含版本:
mv package-a.tgz "package-a-${PACKAGEVERSION}.tgz"
  1. 使用jf rt u命令上傳到工件
jf rt u "package-a-${PACKAGEVERSION}.tgz"  "path/to/upload/directory/package-a-${PACKAGEVERSION}.tgz"

然后它下載另一個 package 並做同樣的事情。

在工件上,它沒有在 .tgz 文件名中顯示版本,而只是稱為package-a-.tgz所以在重命名步驟中出現了問題,我找不到解決方案,即使我'為此嘗試了許多不同的方法。

我也知道 JFrog CLI 內置了 npm 支持,但是由於需要憑據,我們不能在管道中使用它,或者至少我不知道如何使用。

我非常接近讓它按照我們的意願工作,只是這個簡短的重命名沒有成功。 很感謝任何形式的幫助。 謝謝

我的猜測是您的PACKAGEVERSION變量超出了 scope,並且在重命名和上傳階段為空。 您是否嘗試在工作流級別對其進行配置?

https://docs.github.com/en/actions/learn-github-actions/environment-variables

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM