Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
285 changes: 34 additions & 251 deletions .github/workflows/stackql-deploy-actions-test.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,37 @@
name: StackQL Deploy Action Test (AWS SSM)

on:
push:
pull_request:
branches:
- main
workflow_dispatch:

# 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
# Each job deploys its own SSM parameter: stack_env is part of the parameter name
# (/<stack_name>/<stack_env>/test-param), so jobs within a run execute in parallel.
# The concurrency group queues whole workflow runs so that two runs never operate
# on the same parameters at the same time.
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false

jobs:
test-ubuntu-latest:
name: "Test (ubuntu-latest)"
runs-on: ubuntu-latest
test:
name: "Test (${{ matrix.runner }})"
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
stack_env: ci-ubuntu-amd64
- runner: ubuntu-24.04-arm
stack_env: ci-ubuntu-arm64
- runner: macos-latest
stack_env: ci-macos-arm64
- runner: macos-26-intel
stack_env: ci-macos-intel
- runner: windows-latest
stack_env: ci-windows-amd64
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Expand All @@ -23,15 +43,15 @@ jobs:
with:
command: 'build'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: '${{ matrix.stack_env }}'
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'
stack_env: '${{ matrix.stack_env }}'
env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}'
log_level: 'info'
- name: Update Manifest - Update SSM Parameter Value
Expand All @@ -46,15 +66,15 @@ jobs:
with:
command: 'build'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: '${{ matrix.stack_env }}'
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'
stack_env: '${{ matrix.stack_env }}'
env_vars: 'AWS_REGION=${{ vars.AWS_REGION }}'
log_level: 'info'
- name: Teardown SSM Parameter
Expand All @@ -63,13 +83,12 @@ jobs:
with:
command: 'teardown'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: '${{ matrix.stack_env }}'
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 }}
Expand All @@ -86,7 +105,7 @@ jobs:
with:
command: 'build'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: 'ci-env-vars-multiline'
env_vars: |
UNUSED_FIRST=first
AWS_REGION=${{ vars.AWS_REGION }}
Expand All @@ -97,7 +116,7 @@ jobs:
with:
command: 'test'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: 'ci-env-vars-multiline'
env_vars: |
UNUSED_FIRST=first
AWS_REGION=${{ vars.AWS_REGION }}
Expand All @@ -109,245 +128,9 @@ jobs:
with:
command: 'teardown'
stack_dir: 'examples/aws-ssm-parameter'
stack_env: 'dev'
stack_env: 'ci-env-vars-multiline'
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@v7
- 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@v7
- 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@v7
- 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@v7
- 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'
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![StackQL Deploy Actions Test](https://github.com/stackql/stackql-deploy-action/actions/workflows/stackql-deploy-actions-test.yml/badge.svg)](https://github.com/stackql/stackql-deploy-action/actions/workflows/stackql-deploy-actions-test.yml)
[![StackQL Deploy Actions Test](https://github.com/stackql/stackql-deploy-action/actions/workflows/stackql-deploy-actions-test.yml/badge.svg?event=pull_request)](https://github.com/stackql/stackql-deploy-action/actions/workflows/stackql-deploy-actions-test.yml)
[![StackQL](https://stackql.io/img/stackql-logo-bold.png)](https://github.com/stackql/stackql)

# stackql-deploy
Expand Down