新しいGitHub Actionsの環境変数に慣れていない場合、それを保存する方法をまだ学んでいないかもしれません。でも、可能です!
このチュートリアルでは、GitHub Actionsの環境変数を保存する異なる方法と、GitHub Actionsと一緒に作業する際に必要なシークレットを学びます。
準備はいいですか?読み進めて始めましょう!
前提条件
このチュートリアルは、Gitがインストールされた任意のオペレーティングシステムで動作し、チュートリアルではUbuntu OSが使用されています。また、GitHub Actionsの環境変数リポジトリにコードをコミットするためには、Git操作の基本的な作業知識が必要です。
GitHub Actionsの環境変数の設定
GitHub Actionsワークフローを自動化する際、ワークフローに環境変数を添付する必要があります。どうやるのか?最初に、ワークフローでenv
キーワードを使用してカスタム環境変数を作成および指定する必要があります。
1. .github/workflowsという名前のディレクトリを作成して、ワークフローファイルを保存します。
2. 次に、お好みの名前でファイルを.github/workflowsディレクトリに作成します。ただし、この例では、ファイルの名前はmain.ymlとします。以下のコードをmain.ymlファイルにコピーして貼り付けます。
以下のコードは、コードがワークフローをトリガーしたときにAPI_KEY
環境変数を設定して表示します。
3. コードをGitHubリポジトリにコミットしてプッシュします。

4. 今、ウェブブラウザを開いてGitHubでプロジェクトに移動します。 アクションタブをクリックし、現在のコミットをクリックします。
GitHubがワークフローを実行したことを示す画像が以下に表示されます。

5. 最後に、job1またはjob2,のいずれかをクリックして、正常に初期化された環境変数が参照されていることがわかります。


ジョブ用の環境変数の定義
ワークフローファイル全体で環境変数を初期化したので、どのジョブでも環境変数を参照できます。しかし、おそらく1つのジョブだけが環境変数を参照することを望んでいるかもしれません。その場合は、ジョブ自体にenv
キーワードを配置してください。
1. main.ymlファイルのコードを以下のコードに置き換えます。
以下のコードは、特定のジョブに環境変数を配置すると、他のジョブは環境変数を参照できないことを示しています。
2. 変更をコミットして、以前のセクションでGitHub Actions環境変数にコードからジョブをプッシュします。
3. 最後に、GitHubのプロジェクトに移動し、job1とjob2の両方をクリックして、それらの比較を確認します。
- 仕事1– 環境変数を完璧に参照していることがわかります。
- 仕事2– APIキーが空白です。


ステップ用の環境変数の定義
仕事内で環境変数を指定する方法を学んだので、ステップでも同じことができる方法が気になるかもしれません。
仕事のステップでは、ステップ内で環境変数を指定します。
1. main.ymlファイルのコードを以下のコードに置き換えます。
以下のコードでは、ステップ1
で環境変数を指定していますが、ステップ2
では指定していません。その後のステップでその効果を見ることができます。
2. これで変更をコミットして、コードをGitHubにプッシュします。
3. 最後に、GitHub Actions環境変数のプロジェクトに移動し、job1をクリックします。
たとえば、同じジョブ (job1) 内で2つのAPIキーを参照しているにもかかわらず、ステップ2 ではAPIキー(空白)を評価できませんでした。なぜなら、コード内でステップ2
で環境変数を指定していなかったからです。

GitHub Actionsの環境変数とSecretsを介した環境変数の管理
ハードコーディングせずに、環境変数を安全に保存したい場合、GitHub Secretsがその役割を果たします。 GitHub Actionsの環境変数は、Secretsに入れた値を暗号化するため、肉眼で見えたり読まれたりしません。
この方法で作成されたシークレットは、ワークフロー全体、ジョブ、ステップからアクセス可能であり、制限はありません。
GitHub Secretsに環境変数を保存するには:
1. ますますコードをGitHubにプッシュして、前のセクションで行ったようにします。
2. 次に、GitHubでプロジェクトに移動し、設定タブをクリックします。
シークレットをクリックして、新しいシークレットを追加を開始します。

3. 次に、新しいリポジトリのシークレットをクリックすると、追加するシークレットに関する詳細を記入するためのフォームが表示されます。

4. フォームに適切に記入し(名前と値)、シークレットの追加ボタンをクリックして送信します。これでAPI_KEY
がGitHub Secretsに保存されます。このフォームでは、GitHubは安全に環境変数をシークレットとして設定し、GitHub Actionsで作業する際に参照できます。

5. main.yml ファイルを編集し、env
キーワードを secrets
に置き換えます。
以下では、APIキーを ${{secrets.API_KEY}}
の形式で参照しています。APIキー自体をハードコーディングするのではなく、この形式で参照するようにしてください。
6. 最後に、コードをコミットしてGitHubにプッシュし、GitHub Actionsの環境変数に移動します。最初のセクションを参照してください。
以下の画像のようなものが表示されますが、GitHubはシークレットに入力した値を暗号化するため、実際の API_key
は表示されません。

デフォルトのGitHub環境変数を参照する
GitHubが提供するいくつかのデフォルトの環境変数を使用すると、ハードコーディングされたパスではなくリポジトリ内のファイルシステムにアクセスできます。デフォルトのGitHub環境変数を使用すると、GitHubから提供される環境変数を参照する際により動的になります。
デフォルトの環境変数を使用して取得できるパスの一部は以下の通りです:
GITHUB_JOB
– 現在のジョブの job_id を提供します。GITHUB_ACTION
– 現在のアクションの ID を提供します。GITHUB_ACTION_PATH
– アクションが配置されているパスを提供します。GITHUB_ACTOR
– ワークフローを開始した人またはアプリの名前を提供します。たとえば、GitHub のユーザー名です。GITHUB_RUN_ID
– `run` コマンドの一意の番号を提供します。
次のコードで、main.yml ファイルの内容を置き換えてください。以下のコードは、コードに記載されているデフォルトの環境変数を表示します。
コードの変更をコミットして GitHub にプッシュし、GitHub Actions の環境変数プロジェクトでアクションを確認すると、以下の画像のようなものが表示されます。

結論
このチュートリアルを通じて、GitHub Actions の環境変数の管理方法を学びました。今や、環境変数を安全に保存し、GitHub が提供するデフォルトの変数を使用する基本的な知識を持っているはずです。
今後、GitHub Actionsでこの新しい知識をどのように活用する予定ですか?おそらく、デプロイに必要なAPIキーを保存することですか?
Source:
https://adamtheautomator.com/github-actions-environment-variables/