name: "Check environment variables" env: PRODUCTION_ENV_VAR_FILE: helmfile/overrides/production.env on: workflow_dispatch: pull_request: defaults: run: shell: bash jobs: list-env-var-files: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - uses: actions/checkout@v2 - id: set-matrix run: echo "::set-output name=matrix::$(ls helmfile/overrides/*.env | grep -v $PRODUCTION_ENV_VAR_FILE | jq -R -s -c 'split("\n")[:-1]')" compare-to-production: needs: list-env-var-files runs-on: ubuntu-latest strategy: matrix: env-file: ${{ fromJson(needs.list-env-var-files.outputs.matrix) }} steps: - name: Checkout uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - name: Get production env vars run: | ENV_KEYS_PRODUCTION="$(make env-vars ENV_FILE=$PRODUCTION_ENV_VAR_FILE)" echo "ENV_KEYS_PRODUCTION=$ENV_KEYS_PRODUCTION" >> $GITHUB_ENV - name: Get target env vars run: | ENV_KEYS="$(make env-vars ENV_FILE=${{ matrix.env-file }})" echo "ENV_KEYS=$ENV_KEYS" >> $GITHUB_ENV - name: Test target env vars against production uses: ./.github/actions/diff-env-vars if: always() with: env1-name: ${{ env.PRODUCTION_ENV_VAR_FILE }} env1-vars: ${{ env.ENV_KEYS_PRODUCTION }} env2-name: ${{ matrix.env-file }} env2-vars: ${{ env.ENV_KEYS }}