セキュリティ的な問題のため、::set-env::add-path構文が廃止されました。

echo "::set-env name=ENV_NAME::env_value"
echo "::add-path::/path/to/dir"

代わりに、$GITHUB_ENV$GITHUB_PATH に追記する方法が追加されています。

echo "ENV_NAME=env_value" >> $GITHUB_ENV
echo "/path/to/dir" >> $GITHUB_PATH

手動で置換したくなかったので、::set-envから$GITHUB_ENVに置換するツールを書きました。

.github/*.{yml,yaml}があるリポジトリのルートで、npx set-env-to-github_envを実行するだけでマイグレーションできます。

$ npx set-env-to-github_env

Before

name: test
on: [push, pull_request]
jobs:
  test:
    name: "Test"
    runs-on: ubuntu-18.04
    steps:
      - name: set env for prod
        if: github.ref == 'refs/heads/main'
        run: |
          echo "::set-env name=ACCOUNT_ID::${ACCOUNT_ID}"
          echo "::set-env name=BUCKET_NAME::${BUCKET_NAME}"
        env:
          ACCOUNT_ID: 123456789012
          BUCKET_NAME: deploy-prod

After

name: test
on: [push, pull_request]
jobs:
  test:
    name: "Test"
    runs-on: ubuntu-18.04
    steps:
      - name: set env for prod
        if: github.ref == 'refs/heads/main'
        run: |
          echo "ACCOUNT_ID=${ACCOUNT_ID}" >> $GITHUB_ENV
          echo "BUCKET_NAME=${BUCKET_NAME}" >> $GITHUB_ENV
        env:
          ACCOUNT_ID: 123456789012
          BUCKET_NAME: deploy-prod

:memo: ::add-path:: は使ったことがなかったので対応していません。