沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「折腾」GitHub Actions は、プッシュされたタグを抽出する方法

GitHub Actions を使ってもう 2 年近く経ちましたが、今日 2 つの警告メッセージを見つけました。

今日、私がいじっているプロジェクトはこれです:wdssmq/rollup-plugin-monkey: rollup を使用して「GM スクリプト」を開発する


Node.js 12 のアクションは非推奨です。次のアクションを Node.js 16 を使用するように更新してください:actions/checkout@v2。詳細については、次を参照してください:https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.

↑ これは簡単に解決できます。actions/checkout@v2actions/checkout@v3に更新するだけです。

set-outputコマンドは非推奨となり、近く無効になります。環境ファイルの使用にアップグレードしてください。詳細については、次を参照してください:https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

↑ これは少し調査が必要なので、ここに記録しておきます。実際には新しい書き方に変更するだけで済みますが...

ワークフローの設定の主なステップは次のとおりです。完全な設定ファイルは末尾のリンクを参照してください。

    steps:
      # Checkout
      - name: Checkout
        uses: actions/checkout@v3
      # Build Release
      - name: Copy && Gen ZIP
        env:
          PUB_NAME: ${{ env.PUB_NAME }}
        run: |
          # ここで${PUB_NAME}.tar.gzファイルを生成します
      # Get Tag For Release
      - name: Get Tag
        id: get_tag
        env:
          REF: ${{ github.ref }} # e.g. refs/tags/v1.0.0
        run: |
          TAG=${REF/refs\/tags\/v}
          echo "::set-output name=tag::${TAG}"
      # Publish Release
      - name: Publish Release
        id: release
        uses: softprops/action-gh-release@v1
        env:
          TAG: ${{ steps.get_tag.outputs.tag }} # 前のステップで抽出したバージョン番号、つまり1.0.0
        with:
          name: ${{ env.PUB_NAME }} Build ${{ env.TAG }}
          body: ${{ env.PUB_NAME }} Build ${{ env.TAG }} Release.
          files: ${{ env.PUB_NAME }}.tar.gz

この機能の概要は、タグを打つたびに自動的にリリースをビルドして公開し、タグをリリースのバージョン番号として抽出することです。

したがって、タグを抽出するためのステップは次のようになります:

      # Get Tag For Release
      - name: Get Tag
        id: get_tag
        env:
          REF: ${{ github.ref }} # e.g. refs/tags/v1.0.0
        run: |
          TAG=${REF/refs\/tags\/v}
          echo "tag=${TAG}" >> $GITHUB_OUTPUT

ここで、TAG=${REF/refs\/tags\/v}は変数REFの指定された部分を空に置き換え、その結果をTAGに代入します。${TAG}の内容は1.0.0です。

ただし、この変数は現在のrunブロック内でのみ有効であり、後続のステップで使用するためにはエクスポートする必要があります。

古いエクスポートコマンドは上記のようになりますが、この形式は廃止されました...

↓ 新しい書き方:

      # Get Tag For Release
      - name: Get Tag
        id: get_tag
        env:
          REF: ${{ github.ref }} # e.g. refs/tags/v1.0.0
        run: |
          TAG=${REF/refs\/tags\/v}
          echo "tag=${TAG}" >> $GITHUB_OUTPUT

公式ドキュメント:出力パラメータを設定する

完全なワークフロー設定ファイル:wdssmq/rollup-plugin-monkey/blob/main/.github/workflows/push_def.yml

GitHub Actions 実行結果(旧):wdssmq/rollup-plugin-monkey/actions/runs/4051596042

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。