jobsではGITHUB_OUTPUTを使い、stepsではGITHUB_ENVを使う。
前提
前処理で取得したブランチ名や現在時間を別のstepやjobで使いたいときに使える方法。
詳細
jobsで値を共有する
name: play of GITHUB_OUTPUT on: workflow_dispatch jobs: github_output: name: github_output name runs-on: ubuntu-latest outputs: first: ${{ steps.step1.outputs.hoge }} steps: - id: step1 run: echo "hoge=add github_output env" >> $GITHUB_OUTPUT hoge: name: hoge runs-on: ubuntu-latest needs: github_output steps: - run: | echo ${{ needs.github_output.outputs.first }}
詳細説明
stepでGITHUB_OUTPUTに値を設定。jobのoutputsに値を設定する。
outputs: first: ${{ steps.step1.outputs.hoge }} steps: - id: step1 run: echo "hoge=add github_output env" >> $GITHUB_OUTPUT
値を参照したいジョブでneedsを設定する。needsからoutputsの値を参照する。
needs: github_output steps: - run: | echo ${{ needs.github_output.outputs.first }}
steps間で値を共有する
name: play of GITHUB_ENV on: workflow_dispatch jobs: github_env: name: github_env name runs-on: ubuntu-latest steps: - run: | echo env.ADD_ENV is ${{ env.ADD_ENV }} - run: | echo "ADD_ENV=true" >> $GITHUB_ENV - run: | echo env.ADD_ENV is ${{ env.ADD_ENV }}
詳細説明
echoでGITHUB_ENVに値をセット。 env.xxx
で参照。
まとめ
set-output, set-envでも同じ事ができていたが、セキュリティの観点で 2023年5月末から使えなくなった。
場合によってはワークフローが動かなくなる可能性もあるため、今回紹介した方法を使うこと。
公式サイトはこちら。
docs.github.com