Skip to content

Commit 0bee23c

Browse files
authored
chore: merge v2 branch
2 parents ac48766 + b4a12b2 commit 0bee23c

File tree

130 files changed

+5182
-2998
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+5182
-2998
lines changed

Diff for: .github/workflows/on_release_notes.yml

+32-3
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ env:
2525

2626
on:
2727
release:
28+
# We can't filter by tag here, so we filter later on the first job
2829
types: [published]
30+
2931
workflow_dispatch:
3032
inputs:
3133
version_to_publish:
3234
description: "Version to be released in PyPi, Docs, and Lambda Layer, e.g. v1.26.4"
33-
default: v1.26.4
35+
default: v2.0.0
3436
required: true
3537
skip_pypi:
3638
description: "Skip publishing to PyPi as it can't publish more than once. Useful for semi-failed releases"
@@ -42,9 +44,15 @@ on:
4244
default: false
4345
type: boolean
4446
required: false
47+
pre_release:
48+
description: "Publishes documentation using a pre-release tag. You are still responsible for passing a pre-release version tag to the workflow."
49+
default: false
50+
type: boolean
51+
required: false
4552

4653
jobs:
4754
release:
55+
if: ${{ startsWith(github.ref, 'refs/tags/v2') }}
4856
environment: release
4957
runs-on: ubuntu-latest
5058
permissions:
@@ -110,17 +118,38 @@ jobs:
110118
contents: write
111119
uses: ./.github/workflows/reusable_publish_changelog.yml
112120

121+
# When doing a pre-release, we want to publish the docs as "alpha" instead of replacing the latest docs
122+
prepare_docs_alias:
123+
runs-on: ubuntu-latest
124+
outputs:
125+
DOCS_ALIAS: ${{ steps.set-alias.outputs.DOCS_ALIAS }}
126+
steps:
127+
- name: Set docs alias
128+
id: set-alias
129+
run: |
130+
DOCS_ALIAS=latest
131+
if [[ "${{ github.event.release.prerelease || inputs.pre_release }}" == true ]] ; then
132+
DOCS_ALIAS=alpha
133+
fi
134+
echo DOCS_ALIAS="$DOCS_ALIAS" >> "$GITHUB_OUTPUT"
135+
113136
docs:
114-
needs: [release, changelog]
137+
needs: [release, changelog, prepare_docs_alias]
115138
permissions:
116139
contents: write
117140
pages: write
118141
uses: ./.github/workflows/reusable_publish_docs.yml
119142
with:
120143
version: ${{ needs.release.outputs.RELEASE_VERSION }}
121-
alias: latest
144+
alias: ${{ needs.prepare_docs_alias.outputs.DOCS_ALIAS }}
122145
detached_mode: true
123146

147+
publish_layer:
148+
needs: release
149+
uses: ./.github/workflows/publish_v2_layer.yml
150+
with:
151+
latest_published_version: ${{ needs.release.outputs.RELEASE_VERSION }}
152+
124153
post_release:
125154
needs: release
126155
permissions:

Diff for: .github/workflows/publish_layer.yml

-86
This file was deleted.

Diff for: .github/workflows/publish_v2_layer.yml

+100-4
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,108 @@ on:
88
workflow_dispatch:
99
inputs:
1010
latest_published_version:
11-
description: "Latest PyPi published version to rebuild latest docs for, e.g. v1.22.0"
11+
description: "Latest PyPi published version to rebuild latest docs for, e.g. v2.0.0"
12+
required: true
13+
workflow_call:
14+
inputs:
15+
latest_published_version:
16+
type: string
17+
description: "Latest PyPi published version to rebuild latest docs for, e.g. v2.0.0"
1218
required: true
1319

1420
jobs:
15-
dummy:
21+
build-layer:
1622
runs-on: ubuntu-latest
23+
defaults:
24+
run:
25+
working-directory: ./layer
26+
outputs:
27+
release-tag-version: ${{ steps.release-notes-tag.outputs.RELEASE_TAG_VERSION }}
1728
steps:
18-
- name: Hello world
19-
run: echo "hello world"
29+
- name: checkout
30+
uses: actions/checkout@v3
31+
with:
32+
fetch-depth: 0
33+
- name: Install poetry
34+
run: pipx install poetry
35+
- name: Setup Node.js
36+
uses: actions/setup-node@v3
37+
with:
38+
node-version: "16.12"
39+
- name: Setup python
40+
uses: actions/setup-python@v4
41+
with:
42+
python-version: "3.9"
43+
cache: "pip"
44+
- name: Resolve and install project dependencies
45+
# CDK spawns system python when compiling stack
46+
# therefore it ignores both activated virtual env and cached interpreter by GH
47+
run: |
48+
poetry export --format requirements.txt --output requirements.txt
49+
pip install -r requirements.txt
50+
- name: Set release notes tag
51+
id: release-notes-tag
52+
run: |
53+
RELEASE_INPUT=${{ inputs.latest_published_version }}
54+
LATEST_TAG=$(git describe --tag --abbrev=0)
55+
RELEASE_TAG_VERSION=${RELEASE_INPUT:-$LATEST_TAG}
56+
echo RELEASE_TAG_VERSION="${RELEASE_TAG_VERSION:1}" >> "$GITHUB_OUTPUT"
57+
- name: Set up QEMU
58+
uses: docker/setup-qemu-action@8b122486cedac8393e77aa9734c3528886e4a1a8 # v2.0.0
59+
# NOTE: we need QEMU to build Layer against a different architecture (e.g., ARM)
60+
- name: Set up Docker Buildx
61+
id: builder
62+
uses: docker/setup-buildx-action@dc7b9719a96d48369863986a06765841d7ea23f6 # v2.0.0
63+
- name: install cdk and deps
64+
run: |
65+
npm install -g [email protected]
66+
cdk --version
67+
- name: CDK build
68+
run: cdk synth --context version="${{ steps.release-notes-tag.outputs.RELEASE_TAG_VERSION }}" -o cdk.out
69+
- name: zip output
70+
run: zip -r cdk.out.zip cdk.out
71+
- name: Archive CDK artifacts
72+
uses: actions/upload-artifact@v3
73+
with:
74+
name: cdk-layer-artefact
75+
path: layer/cdk.out.zip
76+
77+
deploy-beta:
78+
needs: build-layer
79+
uses: ./.github/workflows/reusable_deploy_v2_layer_stack.yml
80+
secrets: inherit
81+
with:
82+
stage: "BETA"
83+
artefact-name: "cdk-layer-artefact"
84+
environment: "layer-beta"
85+
latest_published_version: ${{ inputs.latest_published_version }}
86+
87+
deploy-prod:
88+
needs: deploy-beta
89+
uses: ./.github/workflows/reusable_deploy_v2_layer_stack.yml
90+
secrets: inherit
91+
with:
92+
stage: "PROD"
93+
artefact-name: "cdk-layer-artefact"
94+
environment: "layer-prod"
95+
latest_published_version: ${{ inputs.latest_published_version }}
96+
97+
deploy-sar-beta:
98+
needs: build-layer
99+
uses: ./.github/workflows/reusable_deploy_v2_sar.yml
100+
secrets: inherit
101+
with:
102+
stage: "BETA"
103+
artefact-name: "cdk-layer-artefact"
104+
environment: "layer-beta"
105+
package-version: ${{ needs.build-layer.outputs.release-tag-version }}
106+
107+
deploy-sar-prod:
108+
needs: [build-layer, deploy-sar-beta]
109+
uses: ./.github/workflows/reusable_deploy_v2_sar.yml
110+
secrets: inherit
111+
with:
112+
stage: "PROD"
113+
artefact-name: "cdk-layer-artefact"
114+
environment: "layer-prod"
115+
package-version: ${{ needs.build-layer.outputs.release-tag-version }}

Diff for: .github/workflows/rebuild_latest_docs.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ on:
1010
workflow_dispatch:
1111
inputs:
1212
latest_published_version:
13-
description: "Latest PyPi published version to rebuild latest docs for, e.g. v1.26.7"
14-
default: "v1.28.0"
13+
description: "Latest PyPi published version to rebuild latest docs for, e.g. v2.0.0"
14+
default: "v2.0.0"
1515
required: true
1616

1717
jobs:

Diff for: .github/workflows/reusable_deploy_layer_stack.yml renamed to .github/workflows/reusable_deploy_v2_layer_stack.yml

+28-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
name: Deploy cdk stack
1+
name: Deploy CDK Layer v2 stack
22

33
permissions:
44
id-token: write
55
contents: read
66

7+
env:
8+
CDK_VERSION: 2.44.0
9+
710
on:
811
workflow_call:
912
inputs:
@@ -19,6 +22,10 @@ on:
1922
description: "GitHub Environment to use for encrypted secrets"
2023
required: true
2124
type: string
25+
latest_published_version:
26+
description: "Latest version that is published"
27+
required: true
28+
type: string
2229

2330
jobs:
2431
deploy-cdk-stack:
@@ -82,7 +89,7 @@ jobs:
8289
pip install -r requirements.txt
8390
- name: install cdk and deps
8491
run: |
85-
npm install -g aws-cdk@2.29.0
92+
npm install -g "aws-cdk@$CDK_VERSION"
8693
cdk --version
8794
- name: install deps
8895
run: poetry install
@@ -94,6 +101,23 @@ jobs:
94101
- name: unzip artefact
95102
run: unzip cdk.out.zip
96103
- name: CDK Deploy Layer
97-
run: cdk deploy --app cdk.out --context region=${{ matrix.region }} 'LayerStack' --require-approval never --verbose
104+
run: cdk deploy --app cdk.out --context region=${{ matrix.region }} 'LayerV2Stack' --require-approval never --verbose --outputs-file cdk-outputs.json
105+
- name: Store latest Layer ARN
106+
if: ${{ inputs.stage == 'PROD' }}
107+
run: |
108+
jq -c '.LayerV2Stack.VersionArn' cdk-outputs.json > cdk-layer-stack-${{ matrix.region }}-layer-version.txt
109+
jq -c '.LayerV2Stack.Arm64VersionArn' cdk-outputs.json >> cdk-layer-stack-${{ matrix.region }}-layer-version.txt
98110
- name: CDK Deploy Canary
99-
run: cdk deploy --app cdk.out --context region=${{ matrix.region}} --parameters DeployStage="${{ inputs.stage }}" 'CanaryStack' --require-approval never --verbose
111+
run: cdk deploy --app cdk.out --context region=${{ matrix.region}} --parameters DeployStage="${{ inputs.stage }}" 'CanaryV2Stack' --require-approval never --verbose
112+
- name: Save Layer ARN artifact
113+
uses: actions/upload-artifacts@v3
114+
with:
115+
name: cdk-layer-stack
116+
path: cdk-layer-stack*
117+
118+
update_v2_layer_arn_docs:
119+
permissions:
120+
contents: write
121+
uses: ./.github/workflows/reusable_update_v2_layer_arn_docs.yml
122+
with:
123+
latest_published_version: ${{ inputs.latest_published_version }}

0 commit comments

Comments
 (0)