Githubアクションへの環境変数の追加


この記事は環境変数をGitHub Action ワークフロー.私は最近、サイトへの変更は、レーダーの下でユニットテストに変更を導入していないことを確認するために新しいプル要求を開くたびに、自動的にユニットテストを実行するには、このサイト上でGithubアクションを設定します.
私は、ワークフローがNPMトークンを必要とするフォントものすごい依存関係をインストールすることができるようにそれをセットアップするとき、若干のしゃっくりに走りました.私は、私のGithubアクションのいくつかを経験しました..github/workflow/test.yml ファイル.うまくいけば、この記事はあなたに若干の時間を節約して、あなたがGithubアクションのために環境変数を設定する次の時間分を構築します.
私のGithubアクションを設定するために、私は新しいGithubアクションワークフローを同様の機能的ワークフロー後にモデル化し、スムーズに実行すると予想しました.しかし、プルリクエストを変更してプルリクエストをマージし、依存関係をインストールしたGithub actionワークフローのステップが次のエラーに失敗したことを確認しました.
error An unexpected error occurred: "Failed to replace env in config: $
{FONTAWESOME_NPM_AUTH_TOKEN}"
それから思い出した💡 私のサイトはビルドして展開する環境変数が必要です.ローカルに .npmrc NPM設定を設定し、適切な環境変数を設定して、以下のように設定します.
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=${FONTAWESOME_NPM_AUTH_TOKEN}
特に、GithubアクションのワークフローにはFONTAWESOME_NPM_AUTH_TOKEN 私はローカルのbashプロファイルで設定し、.npmrc ファイル.それで、私は設定のページに行くことによってこの変数を環境変数にアクセスしているgithubリポジトリを与える必要がありました.リポジトリのナビゲーションで“設定”をクリックして設定にアクセスできます.リポジトリに対する秘密を更新するURL(この執筆時点で)は次のようになります.https://github.com/username/repo/settings/secrets ユーザ名とrepoを目的のリポジトリのユーザ名とrepoに置き換え、「新しい秘密」をクリックする.

上記の私のリポジトリの設定の下の秘密のページのスクリーンショットは、私がFONTAWESOME_NPM_AUTH_TOKEN .
今、私のリポジトリは、変数にアクセスできるように自分の行動の中で各ジョブを更新するために必要な環境変数へのアクセスを持っていました.環境変数を自分のリポジトリに追加する前に、依存関係がインストールされているジョブを見てください.
 - name: Install Dependencies
      run: npm install
環境変数を追加した後、依存関係のインストールジョブを更新しました.
- name: Install Dependencies
      run: |
        npm config set //npm.fontawesome.com/:_authToken=${FONTAWESOME_NPM_AUTH_TOKEN}
        npm ci
      env:
        FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
npm config set 手動でNPMの設定を.npmrc ファイルと適切な環境変数を渡します.私も更新npm install to npm ci これはきれいなスレートでプロジェクトをインストールし、CI環境に適しています.最後にrun 私が通った値env 含まれたキーFONTAWESOME_NPM_AUTH_TOKEN を参照)${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }} A . K . Asecrets このgithubリポジトリから.
完全なGithubアクションのワークフローは、すべての依存関係(フォントを必要とするフォントを含む)をインストールするために使用して、ユニットテストを実行して以下のように見えた.注意:テストコマンドは、同じ環境変数へのアクセスを必要とし、環境変数を検索して以前に見たエラーに走らずにGITHUBアクションを実行するために別々に設定する必要がありました.
name: CI

on:
# will run on all PRs that are opened or updated (synchronized)
pull_request:
  types: [opened, synchronize, reopened]

jobs:
test:
  name: Test
  runs-on: ubuntu-latest
  env:
    CI: true
  steps:
    - uses: actions/checkout@v2
    - name: Use Node.js 13.x
      uses: actions/setup-node@v1
      with:
        node-version: 13.x
    - name: Install Dependencies
      run: | # run multiple commands
        npm config set //npm.fontawesome.com/:_authToken=${FONTAWESOME_NPM_AUTH_TOKEN}
        npm ci
      env:
        FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
    - name: Test
      run: | # run multiple commands
        npm config set //npm.fontawesome.com/:_authToken=${FONTAWESOME_NPM_AUTH_TOKEN}
        npm run test
      env:
        FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}