www/.github/workflows/cd.yml
2023-06-26 14:24:41 +08:00

89 lines
2.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: cd
on:
push:
branches:
- main
paths-ignore:
- '*.md'
concurrency:
group: deploy
cancel-in-progress: true
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Create Deployment
uses: bobheadxi/deployments@v1
id: deployment
with:
step: start
env: aws
- uses: actions/checkout@v3
- name: add packages data
run: |
rm ./src/data/packages.json
node .github/get-packages-data.js
- name: Create Package Detail Pages from packages.json
uses: getneil/jq-action@v1
id: version
with:
cmd: '.github/build-package-pages.sh src/data/packages.json src/content'
- uses: teaxyz/setup@v0
- run: tea -E just ci
# NOTE: temp disabled? maybe can be addressed by https://github.com/teaxyz/www/issues/252
# - name: Check for broken links
# uses: lycheeverse/lychee-action@v1
# with:
# fail: true
# args: --verbose --no-progress './public/**/*.md' './public/**/*.html'
# env:
# GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
## means s3 sync will only sync things we need syncd
# - uses: chetan/git-restore-mtime-action@v1
- uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
# cache-control of 10 mins because we *need* to be able to update
# this and have people see the results can be fixed well with a static site builder
- run: |
aws s3 sync public s3://www.tea.xyz \
--metadata-directive REPLACE \
--cache-control max-age=600 \
--exclude '.git/*' --exclude '.github/*' \
--exclude 'Images/packages/*' \
--exclude 'pour.sh' \
--exclude 'tea.white-paper*.pdf' \
--exclude '*.md' \
--exclude 'tea-*+*' \
--delete
#TODO create a github-action that can be used to parse the
# output from `s3 sync` into invalidation commands. NOTE
# I have already looked for something to do this and failed.
- run: |
aws cloudfront create-invalidation \
--distribution-id ${{ secrets.AWS_CF_DISTRIBUTION_ID }} \
--paths '/*'
- name: Seal Deployment
uses: bobheadxi/deployments@v1
if: always()
with:
step: finish
status: ${{ job.status }}
deployment_id: ${{ steps.deployment.outputs.deployment_id }}
env: ${{ steps.deployment.outputs.env }}