Merge pull request #3 from stackql/feat/env-vars-multiline #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: StackQL Deploy Action Test (AWS SSM) | |
| on: | |
| push: | |
| branches: | |
| - main | |
| # Run tests sequentially to avoid race conditions on shared AWS resources. | |
| # Order: Linux amd64 -> env_vars multi-line (Linux amd64) -> Linux arm64 -> macOS arm -> macOS Intel -> Windows | |
| jobs: | |
| test-ubuntu-latest: | |
| name: "Test (ubuntu-latest)" | |
| runs-on: ubuntu-latest | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deploy SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Update Manifest - Update SSM Parameter Value | |
| shell: bash | |
| run: | | |
| sed -i.bak 's/stackql-deploy-action-test-value/stackql-deploy-action-test-value-updated/' examples/aws-ssm-parameter/stackql_manifest.yml | |
| rm -f examples/aws-ssm-parameter/stackql_manifest.yml.bak | |
| echo "Updated manifest:" | |
| cat examples/aws-ssm-parameter/stackql_manifest.yml | |
| - name: Redeploy SSM Parameter with Updated Value | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter (Post-Update) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| test-env-vars-multiline: | |
| name: "Test env_vars multi-line parsing (ubuntu-latest)" | |
| needs: test-ubuntu-latest | |
| runs-on: ubuntu-latest | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| # Uses a `|` block scalar with AWS_REGION on a non-first line so leading-whitespace | |
| # on continuation entries would break the required var if the parser didn't trim. | |
| # UNUSED_* pairs are noise entries the stack does not consume; their presence validates | |
| # that multi-line parsing tolerates additional vars without affecting the stack. | |
| - name: Deploy SSM Parameter (multi-line env_vars) | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: | | |
| UNUSED_FIRST=first | |
| AWS_REGION=${{ vars.AWS_REGION }} | |
| UNUSED_LAST=last | |
| log_level: 'info' | |
| - name: Test SSM Parameter (multi-line env_vars) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: | | |
| UNUSED_FIRST=first | |
| AWS_REGION=${{ vars.AWS_REGION }} | |
| UNUSED_LAST=last | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter (multi-line env_vars) | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: | | |
| UNUSED_FIRST=first | |
| AWS_REGION=${{ vars.AWS_REGION }} | |
| UNUSED_LAST=last | |
| log_level: 'info' | |
| test-ubuntu-arm: | |
| name: "Test (ubuntu-24.04-arm)" | |
| needs: test-env-vars-multiline | |
| runs-on: ubuntu-24.04-arm | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deploy SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Update Manifest - Update SSM Parameter Value | |
| shell: bash | |
| run: | | |
| sed -i.bak 's/stackql-deploy-action-test-value/stackql-deploy-action-test-value-updated/' examples/aws-ssm-parameter/stackql_manifest.yml | |
| rm -f examples/aws-ssm-parameter/stackql_manifest.yml.bak | |
| echo "Updated manifest:" | |
| cat examples/aws-ssm-parameter/stackql_manifest.yml | |
| - name: Redeploy SSM Parameter with Updated Value | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter (Post-Update) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| test-macos-arm: | |
| name: "Test (macos-latest)" | |
| needs: test-ubuntu-arm | |
| runs-on: macos-latest | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deploy SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Update Manifest - Update SSM Parameter Value | |
| shell: bash | |
| run: | | |
| sed -i.bak 's/stackql-deploy-action-test-value/stackql-deploy-action-test-value-updated/' examples/aws-ssm-parameter/stackql_manifest.yml | |
| rm -f examples/aws-ssm-parameter/stackql_manifest.yml.bak | |
| echo "Updated manifest:" | |
| cat examples/aws-ssm-parameter/stackql_manifest.yml | |
| - name: Redeploy SSM Parameter with Updated Value | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter (Post-Update) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| test-macos-intel: | |
| name: "Test (macos-26-intel)" | |
| needs: test-macos-arm | |
| runs-on: macos-26-intel | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deploy SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Update Manifest - Update SSM Parameter Value | |
| shell: bash | |
| run: | | |
| sed -i.bak 's/stackql-deploy-action-test-value/stackql-deploy-action-test-value-updated/' examples/aws-ssm-parameter/stackql_manifest.yml | |
| rm -f examples/aws-ssm-parameter/stackql_manifest.yml.bak | |
| echo "Updated manifest:" | |
| cat examples/aws-ssm-parameter/stackql_manifest.yml | |
| - name: Redeploy SSM Parameter with Updated Value | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter (Post-Update) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| test-windows: | |
| name: "Test (windows-latest)" | |
| needs: test-macos-intel | |
| runs-on: windows-latest | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_SESSION_TOKEN: ${{ secrets.AWS_SESSION_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Deploy SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Update Manifest - Update SSM Parameter Value | |
| shell: bash | |
| run: | | |
| sed -i.bak 's/stackql-deploy-action-test-value/stackql-deploy-action-test-value-updated/' examples/aws-ssm-parameter/stackql_manifest.yml | |
| rm -f examples/aws-ssm-parameter/stackql_manifest.yml.bak | |
| echo "Updated manifest:" | |
| cat examples/aws-ssm-parameter/stackql_manifest.yml | |
| - name: Redeploy SSM Parameter with Updated Value | |
| uses: ./ | |
| with: | |
| command: 'build' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Test SSM Parameter (Post-Update) | |
| uses: ./ | |
| with: | |
| command: 'test' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' | |
| - name: Teardown SSM Parameter | |
| if: always() | |
| uses: ./ | |
| with: | |
| command: 'teardown' | |
| stack_dir: 'examples/aws-ssm-parameter' | |
| stack_env: 'dev' | |
| env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}' | |
| log_level: 'info' |