web-dev-qa-db-ja.com

GitHubアクションでbash式を使用して環境変数を設定するにはどうすればよいですか?

GitHubアクションでは、bash式を評価してから環境変数に割り当てます-

    - name: Tag image
      env:
        GITHUB_SHA_SHORT: ${{ $(echo $GITHUB_SHA | cut -c 1-6) }}
      ..do other things...

しかし、この素朴な試みは失敗しました。 ドキュメントによると これはサポートされていないようですが、ある程度クリーンな回避策で問題ありません。

11
evilSnobu

前のステップでset-envを使用するとうまくいきます。

name: my workflow
on: Push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Set env
      run: echo ::set-env name=GITHUB_SHA_SHORT::$(echo $GITHUB_SHA | cut -c 1-6)
    - name: Test
      run: echo $GITHUB_SHA_SHORT

環境変数を設定します:set-env::set-env name={name}::{value}

ジョブで次に実行されるアクションの環境変数を作成または更新します。環境変数を作成または更新するアクションは新しい値にアクセスできませんが、ジョブ内の後続のすべてのアクションはアクセスできます。環境変数では大文字と小文字が区別され、句読点を含めることができます。

https://help.github.com/en/articles/development-tools-for-github-actions#set-an-environment-variable-set-env から)

これは、ワークフローで環境変数を参照する別の方法です。

    - name: Test
      run: echo ${{ env.GITHUB_SHA_SHORT }}
15
peterevans