Merge pull request #99 from CityOfLosAngeles/delete-test-1-1-1 #387
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Deploy Development Data | |
on: # run this workflow when a push has been made. if a push has been made to the development branch it will deploy the site to the hosting environment | |
push: | |
branches-ignore: | |
- production | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 # sets up python in our environment | |
with: | |
python-version: '3.11' # install python version 3.x, default architecture is x64 | |
# this Action should follow steps to set up Python build environment | |
- name: Install Python dependencies requirements | |
run: pip3 install -r scripts/requirements.txt | |
- name: Check site data | |
run: python3 scripts/check_data.py | |
- name: Build site data | |
run: python3 scripts/build_data.py | |
- name: Zip site artifact # only zip the site if the push was made to the development branch | |
if: ${{ github.ref == 'refs/heads/development' }} | |
run: zip -r _site.zip _site | |
- name: Upload site artifact # only upload the zip if the push was made to the development branch | |
if: ${{ github.ref == 'refs/heads/development' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: site-deployment-dev | |
path: _site.zip | |
retention-days: 1 # delete the artifact after 1 day | |
deploy: | |
runs-on: ubuntu-22.04 | |
needs: [build] | |
if: (github.ref == 'refs/heads/development') | |
environment: | |
name: development | |
url: https://${{ vars.SITE_DOMAIN_NAME }} | |
permissions: # required for configure-aws-credentials action to work properly | |
id-token: write | |
contents: read | |
#env: | |
# Service Account info to trigger open-sdg-site-starter workflow | |
# PAT_USERNAME: ${{ secrets.PAT_USERNAME }} | |
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }} | |
steps: | |
- name: Install AWS CLI | |
run: pip3 install awscli --upgrade --user # install the cli with upgrade to any requirements and into the subdir of the user | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 # use the official GitHub Action from AWS to setup credentials | |
with: | |
role-to-assume: ${{ secrets.ROLE_ARN }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
mask-aws-account-id: true | |
- name: Fetch site artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: site-deployment-dev | |
- name: Unzip site artifact | |
run: unzip _site.zip | |
- name: Push Contents to S3 # push the current working directory to the S3 bucket | |
run: aws s3 sync _site/ s3://${{ secrets.S3_BUCKET_NAME }} --exclude ".git/*" --exclude ".github/*" --delete # have the bucket have the same content in the repo & exclude the git related directories. | |
- name: Invalidate CloudFront Cache # Invalidate the CloudFront Distribution Cache to get contents from the S3 bucket | |
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.CDN_DISTRIBUTION_ID }} --paths "/*" | |
# TODO: Revisit the last two jobs later | |
# - name: Check Invalidation is Complete | |
# run: ./scripts/check_invalidations.sh | |
# - name: Trigger open-sdg-site-starter workflow | |
# run: | | |
# curl \ | |
# -L \ | |
# -X POST \ | |
# -H "Accept: application/vnd.github+json" \ | |
# -H "Authorization: Bearer $PAT_TOKEN"\ | |
# -H "X-GitHub-Api-Version: 2022-11-28" \ | |
# https://api.github.com/repos/CityOfLosAngeles/open-sdg-site-starter/actions/workflows/BuildNDeployDev.yml/dispatches \ | |
# -d '{"ref":"ghi-23"}'2 |