GitHub Actions for VS Code で、ワークフロー編集時の構成変数のサジェストとバリデーションが便利

2023.12.25

こんにちは、CX 事業本部 Delivery 部の若槻です。

前回のエントリで、GitHub Actions for VS Code を使って構成変数(Variables、Secrets および Environments)の管理が行えることをご紹介しました。

今回は GitHub Actions for VS Code の別機能として、ワークフロー編集時に構成変数のサジェストとバリデーションをしてくれる機能が便利だったのでご紹介します。

環境

# VS Code
$ code --version
1.85.1
0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
arm64

# GitHub Actions for VS Code
$ code --list-extensions --show-versions | grep github.vscode-github-actions@      
github.vscode-github-actions@0.26.2

便利な機能

次のように Variables、Secrets および Environments の構成変数を使用したワークフローを例に確認してみます。

.github/workflows/cicd.yml

on:
  push:
    branches:
      - develop
      - staging
      - main

jobs: 
  integration:
    runs-on: ubuntu-latest
    steps:
      - name: integration
        run: |
          echo "Integration"
          echo ${{ github.ref_name }}
          echo ${{ github.base_ref }}
  dev_deployment:
    runs-on: ubuntu-latest
    if: github.ref_name == 'develop'
    environment: development
    needs: integration
    steps:
      - name: deploy
        run: |
          echo "Development Deployment"
          echo ${{ vars.HOGE_ENV }}
          echo ${{ secrets.HOGE_SECRET }}
  prd_deployment:
    runs-on: ubuntu-latest
    if: github.ref_name == 'main'
    environment: production
    needs: integration
    steps:
      - name: deploy
        run: |
          echo "Production Deployment"
          echo ${{ vars.HOGE_ENV }}
          echo ${{ secrets.HOGE_SECRET }}

バリデーション

バリデーション機能により、ワークフロー内で不正な構成変数の指定があると Error および Warning が表示されます。

ワークフロー上では vars.HOGE_ENV という変数が指定されていますが、この Variables は実際には存在しないため、バリデーションで Context access might be invalid: HOGE_ENV という Warning が発生しています。

また production という Environment は存在しないため、バリデーションで Value 'production' is not valid という Error が発生しています。

サジェスト

サジェスト機能により、ワークフロー内で構成変数を指定する際に、env.vars.secrets. まで入力すると、存在する変数をサジェストしてくれます。

注意点

GITHUB_ENV に手動で指定した変数へのアクセスは Warning となる

不正な指定ではなくてもバリデーションの Warning が解決されない場合があります。

例えば、ワークフロー内で GITHUB_ENV に手動で設定した環境変数にアクセスした場合です。"VAR_HOGE=${123}" >> $GITHUB_ENV のように行った変数の設定はバリデーションで考慮されません。

この方法は下記ドキュメントでも紹介されているステップ間で値を受け渡す便利な方法ですが、拡張機能とは若干相性が悪いので留意してください。

Warning を抑制するワークアラウンドとしては、ワークフローまたはジョブの env で予め環境変数を定義しておく方法ががあります。

.github/workflows/cicd.yml

on:
  push

jobs: 
  integration:
    env:
      VAR_HOGE: null
    runs-on: ubuntu-latest
    steps:
      - name: Set GITHUB_ENV
        run: |
          echo "VAR_HOGE=${123}" >> $GITHUB_ENV

      - name: Get GITHUB_ENV
        run: |
          echo ${{ env.VAR_HOGE }}

Warning が解消されました。

おわりに

GitHub Actions for VS Code で、ワークフロー編集時の構成変数のサジェストとバリデーションが便利だったのでご紹介しました。

Github Actions を利用するプロジェクトを VS Code で開発する際にはとても便利なので、ぜひご活用ください。

以上