Skip to content

Commit 7422fb6

Browse files
committed
Merge branch 'ecs-atmos-deployment' of github.com:cloudposse/docs into ecs-atmos-deployment
* 'ecs-atmos-deployment' of github.com:cloudposse/docs: Fix release versioning by storing library docs in draft releases (#854) docs: Add RunsOn regional availability guidance to primary region decision (#851) Add redirects for all Spacelift tutorials (#853) Add redirect for Spacelift tutorial (#850)
2 parents 804d8fd + 9b5cf7a commit 7422fb6

4 files changed

Lines changed: 110 additions & 33 deletions

File tree

.github/actions/build-website/action.yml

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,46 @@ runs:
5959
run: |
6060
make init
6161
62-
# Download pre-built library docs from the latest GitHub Release
63-
# The generate-library.yml workflow must have run at least once
62+
# Download pre-built library docs from draft release or latest published release
6463
- name: "Download Pre-built Library Docs"
6564
shell: bash
6665
env:
6766
GH_TOKEN: ${{ inputs.repo_access_token }}
6867
run: |
69-
echo "Finding latest library-docs release..."
70-
LATEST_TAG=$(gh release list --repo ${{ github.repository }} --limit 50 | grep "library-docs-" | head -1 | awk -F'\t' '{print $3}')
71-
if [ -z "$LATEST_TAG" ]; then
72-
echo "Error: No library-docs release found. Run the 'Generate Library' workflow first."
73-
exit 1
68+
DOWNLOADED=false
69+
70+
# Try draft release first
71+
echo "Checking for draft release..."
72+
DRAFT_TAG=$(gh release list --repo ${{ github.repository }} --exclude-drafts=false --limit 20 | { grep "Draft" || true; } | head -1 | awk -F'\t' '{print $3}')
73+
74+
if [ -n "$DRAFT_TAG" ]; then
75+
echo "Found draft release: ${DRAFT_TAG}"
76+
if gh release download "${DRAFT_TAG}" \
77+
--repo ${{ github.repository }} \
78+
--pattern "library-docs.tar.gz" \
79+
--dir /tmp 2>/dev/null; then
80+
echo "Downloaded library docs from draft release"
81+
DOWNLOADED=true
82+
else
83+
echo "Draft release exists but has no library-docs.tar.gz asset"
84+
fi
85+
else
86+
echo "No draft release found"
7487
fi
75-
echo "Downloading from release: ${LATEST_TAG}"
76-
gh release download "${LATEST_TAG}" \
77-
--repo ${{ github.repository }} \
78-
--pattern "library-docs.tar.gz" \
79-
--dir /tmp
88+
89+
# Fall back to latest published release
90+
if [ "$DOWNLOADED" = false ]; then
91+
echo "Downloading from latest published release..."
92+
if ! gh release download \
93+
--repo ${{ github.repository }} \
94+
--pattern "library-docs.tar.gz" \
95+
--dir /tmp; then
96+
echo "Error: No library-docs.tar.gz found in any release. Run the 'Generate Library' workflow first."
97+
exit 1
98+
fi
99+
echo "Downloaded library docs from latest published release"
100+
fi
101+
80102
echo "Extracting library docs..."
81103
tar -xzf /tmp/library-docs.tar.gz
82104
echo "Library docs downloaded and extracted successfully"

.github/workflows/generate-library.yml

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -216,27 +216,19 @@ jobs:
216216
docs/modules/library \
217217
docs/github-actions/library
218218
219-
- name: Create Release
219+
- name: Upload to Draft Release
220220
env:
221221
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
222222
run: |
223-
VERSION="0.0.$(date -u +'%Y%m%d%H%M%S')"
224-
gh release create "library-docs-${VERSION}" \
225-
--title "Library Docs ${VERSION}" \
226-
--notes "Pre-built library documentation for fast preview builds. Generated $(date -u +'%Y-%m-%d %H:%M:%S UTC')." \
227-
library-docs.tar.gz
228-
229-
- name: Cleanup Old Releases
230-
env:
231-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
232-
run: |
233-
echo "Cleaning up old library-docs releases (keeping last 5)..."
234-
gh release list --repo ${{ github.repository }} --limit 100 \
235-
| grep "library-docs-" \
236-
| tail -n +6 \
237-
| awk '{print $1}' \
238-
| while read tag; do
239-
echo "Deleting release: ${tag}"
240-
gh release delete "${tag}" --yes --cleanup-tag || true
241-
done
242-
echo "Cleanup complete"
223+
echo "Finding draft release..."
224+
DRAFT_TAG=$(gh release list --exclude-drafts=false --limit 20 | { grep "Draft" || true; } | head -1 | awk -F'\t' '{print $3}')
225+
226+
if [ -z "$DRAFT_TAG" ]; then
227+
echo "No draft release found. Library docs will be uploaded when a draft release is created (on next PR merge)."
228+
echo "Skipping upload."
229+
exit 0
230+
fi
231+
232+
echo "Uploading library-docs.tar.gz to draft release: ${DRAFT_TAG}"
233+
gh release upload "${DRAFT_TAG}" library-docs.tar.gz --clobber
234+
echo "Upload complete"

docs/layers/network/design-decisions/decide-on-primary-aws-region.mdx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,33 @@ certain regions receive platform infrastructure updates slower than others. Also
4949
[Local Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/#AWS_Local_Zones) (e.g.
5050
`us-west-2-lax-1a`) which operate a subset of AWS services.
5151

52+
See [AWS Regional Services List](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) for
53+
a complete breakdown of service availability by region.
54+
55+
### Reference Architecture Component Availability
56+
57+
Beyond standard AWS services, certain components in the reference architecture have their own regional constraints that
58+
should factor into your primary region decision.
59+
60+
#### RunsOn (Self-Hosted GitHub Runners)
61+
62+
[RunsOn](/layers/github-actions/runs-on/) is our recommended solution for self-hosted GitHub runners. It relies on
63+
[AWS App Runner](https://aws.amazon.com/apprunner/), which is only available in a subset of AWS regions:
64+
65+
- `us-east-1`, `us-east-2`, `us-west-2`
66+
- `eu-central-1`, `eu-west-1`, `eu-west-2`, `eu-west-3`
67+
- `ap-south-1`, `ap-southeast-1`, `ap-southeast-2`, `ap-northeast-1`
68+
69+
Notably, **`us-west-1` does not support App Runner**, and therefore RunsOn cannot be deployed there directly.
70+
71+
If your primary region doesn't support App Runner but you still want to use that region, you'll need to deploy RunsOn
72+
in a supported region and connect it to your primary region. We recommend using Transit Gateway with a cross-region
73+
peering connection for this, though other connectivity options exist. This adds approximately **$80/month** in Transit
74+
Gateway cross-region data transfer costs.
75+
76+
For most deployments, we recommend choosing a primary region that supports App Runner to avoid this additional
77+
complexity and cost.
78+
5279
### Instance Types
5380

5481
Not all instance types are available in all regions

plugins/staticRedirects/redirects/deprecated.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,42 @@
33
"from": "/layers/spacelift/",
44
"to": "/resources/deprecated/spacelift/"
55
},
6+
{
7+
"from": "/layers/spacelift/tutorials/",
8+
"to": "/resources/deprecated/spacelift/tutorials/"
9+
},
10+
{
11+
"from": "/layers/spacelift/tutorials/how-to-destroy-a-component-using-atmos-or-spacelift/",
12+
"to": "/resources/deprecated/spacelift/tutorials/how-to-destroy-a-component-using-atmos-or-spacelift/"
13+
},
14+
{
15+
"from": "/layers/spacelift/tutorials/how-to-develop-with-spacelift-and-atmos/",
16+
"to": "/resources/deprecated/spacelift/tutorials/how-to-develop-with-spacelift-and-atmos/"
17+
},
18+
{
19+
"from": "/layers/spacelift/tutorials/how-to-enable-spacelift-drift-detection/",
20+
"to": "/resources/deprecated/spacelift/tutorials/how-to-enable-spacelift-drift-detection/"
21+
},
22+
{
23+
"from": "/layers/spacelift/tutorials/how-to-manage-explicit-component-dependencies-with-spacelift/",
24+
"to": "/resources/deprecated/spacelift/tutorials/how-to-manage-explicit-component-dependencies-with-spacelift/"
25+
},
26+
{
27+
"from": "/layers/spacelift/tutorials/how-to-scale-spacelift-runners/",
28+
"to": "/resources/deprecated/spacelift/tutorials/how-to-scale-spacelift-runners/"
29+
},
30+
{
31+
"from": "/layers/spacelift/tutorials/how-to-sign-up/",
32+
"to": "/resources/deprecated/spacelift/tutorials/how-to-sign-up/"
33+
},
34+
{
35+
"from": "/layers/spacelift/tutorials/how-to-use-multiple-infrastructure-repositories-with-spacelift/",
36+
"to": "/resources/deprecated/spacelift/tutorials/how-to-use-multiple-infrastructure-repositories-with-spacelift/"
37+
},
38+
{
39+
"from": "/layers/spacelift/tutorials/how-to-use-spacectl/",
40+
"to": "/resources/deprecated/spacelift/tutorials/how-to-use-spacectl/"
41+
},
642
{
743
"from": "/layers/alerting/",
844
"to": "/resources/deprecated/alerting/"

0 commit comments

Comments
 (0)