Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload build preview site as artifact #822

Merged
merged 5 commits into from
Dec 6, 2024
Merged
Show file tree
Hide file tree
Changes from 4 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
61 changes: 61 additions & 0 deletions .github/workflows/deploy-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "Deploy Preview"

on:
workflow_run:
workflows: [Website Deploy Preview]
types:
- completed

env:
AWS_REGION: us-east-2
IAM_ROLE_ARN: arn:aws:iam::068007702576:role/cplive-plat-ue2-dev-atmos-docs-gha
IAM_ROLE_SESSION_NAME: cloudposse-atmos-ci-deploy-pr-${{ github.event.workflow_run.pull_requests.0.number }}
S3_BUCKET_NAME: cplive-plat-ue2-dev-atmos-docs-origin
PR_NUMBER: ${{ github.event.workflow_run.pull_requests.0.number }}
DEPLOYMENT_HOST: pr-${{ github.event.workflow_run.pull_requests.0.number }}.atmos-docs.ue2.dev.plat.cloudposse.org
ALGOLIA_INDEX_NAME: atmos-preview.tools
ALGOLIA_APP_ID: 32YOERUX83

goruha marked this conversation as resolved.
Show resolved Hide resolved
# These permissions are needed to interact with the GitHub's OIDC Token endpoint
permissions:
id-token: write
contents: read

jobs:
website-deploy-preview:
# Do not deploy the website to the preview environment if the PR has the label 'website-no-deploy' or the workflow run failed
if: ${{ github.event.workflow_run.conclusion == 'success' && !contains(github.event.workflow_run.pull_requests.*.labels.*.name, 'website-no-deploy') }}
runs-on: ubuntu-latest
environment:
name: preview
url: https://${{ env.DEPLOYMENT_HOST }}

steps:
# https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ env.AWS_REGION }}
role-to-assume: ${{ env.IAM_ROLE_ARN }}
role-session-name: ${{ env.IAM_ROLE_SESSION_NAME }}

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: website
path: website/build
run-id: ${{ github.event.workflow_run.id }}

- name: Copy Website to S3 Bucket PR Folder
run: |
cd website/build
aws sts get-caller-identity
aws s3 sync . s3://${{ env.S3_BUCKET_NAME }}/pr-${{ env.PR_NUMBER }}/ --delete
aws s3 ls s3://${{ env.S3_BUCKET_NAME }}/pr-${{ env.PR_NUMBER }}/ --recursive --human-readable --summarize

- name: ReIndex with Algolia
if: ${{ contains(github.event.workflow_run.pull_requests.*.labels.*.name, 'reindex') }}
env:
ALGOLIA_SCRAPER_API_KEY: ${{ secrets.ALGOLIA_SCRAPER_API_KEY }}
run: |
./website/algolia/reindex.sh
8 changes: 8 additions & 0 deletions .github/workflows/website-deploy-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,14 @@ jobs:
npm install --only=production
npm run build:site

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: website
path: website/build
if-no-files-found: error
retention-days: 1

- name: Copy Website to S3 Bucket PR Folder
run: |
cd website/build
Expand Down
2 changes: 2 additions & 0 deletions website/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ This folder contains the website powering official [Atmos](https://atmos.tools)
4. Start the local web server by running `npm run start`

The shortcut for running all these commands is just to run `make all`


Loading