mirror of
https://github.com/Sea-Haven-Industries/.github.git
synced 2026-09-30 11:43:11 +00:00
- Add cloudformation:CreateChangeSet on aws:transform/* to the shared CFN execution role (required for SAM's Serverless transform) - Remove working-directory from pip install step so it finds requirements.txt at repo root (not just cdk-dir)
72 lines
1.9 KiB
YAML
72 lines
1.9 KiB
YAML
name: CD — CDK Deploy
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
node-version:
|
|
description: "Node.js version to use"
|
|
type: string
|
|
default: "22"
|
|
python-version:
|
|
description: "Python version for Python CDK repos (leave empty for TypeScript CDK)"
|
|
type: string
|
|
default: ""
|
|
region:
|
|
description: "AWS region"
|
|
type: string
|
|
default: "us-east-1"
|
|
cdk-dir:
|
|
description: "Directory containing cdk.json"
|
|
type: string
|
|
default: "."
|
|
enable-qemu:
|
|
description: "Enable QEMU for cross-platform Docker builds (arm64 on x86 runners)"
|
|
type: boolean
|
|
default: false
|
|
secrets:
|
|
deploy-role-arn:
|
|
description: "OIDC deploy role ARN"
|
|
required: true
|
|
|
|
permissions:
|
|
id-token: write
|
|
contents: read
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: docker/setup-qemu-action@v3
|
|
if: ${{ inputs.enable-qemu }}
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ inputs.node-version }}
|
|
|
|
- uses: actions/setup-python@v5
|
|
if: ${{ inputs.python-version != '' }}
|
|
with:
|
|
python-version: ${{ inputs.python-version }}
|
|
|
|
- name: Install Node dependencies
|
|
if: ${{ inputs.python-version == '' }}
|
|
run: npm ci
|
|
|
|
- name: Install Python dependencies
|
|
if: ${{ inputs.python-version != '' }}
|
|
run: |
|
|
for req in $(find . -name requirements.txt -not -path '*/node_modules/*'); do
|
|
pip install -r "$req"
|
|
done
|
|
|
|
- uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
role-to-assume: ${{ secrets.deploy-role-arn }}
|
|
aws-region: ${{ inputs.region }}
|
|
|
|
- name: CDK deploy
|
|
working-directory: ${{ inputs.cdk-dir }}
|
|
run: npx -y cdk deploy --all --require-approval never
|