Skip to content

Commit

Permalink
Upload build preview site as artifact (#822)
Browse files Browse the repository at this point in the history
* Upload build preview site as artifacts

* Update README.md

* Added new deploy workflow
  • Loading branch information
goruha authored Dec 6, 2024
1 parent 822ab17 commit 8e79ceb
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 0 deletions.
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

# 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`


0 comments on commit 8e79ceb

Please sign in to comment.