Add Hexen Academy #1127
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: Processes and uploads sheet changes | |
on: | |
push: | |
branches: | |
- staging | |
- master | |
env: | |
NPM_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }} | |
jobs: | |
deployment: | |
if: github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/master' | |
environment: ${{ github.ref_name == 'master' && 'production' || 'staging' }} | |
runs-on: ubuntu-latest | |
env: | |
CDN_SHEETS_FOLDER: ${{ vars.CDN_SHEETS_FOLDER }} | |
# Set job outputs to values from filter step | |
outputs: | |
sheet: ${{ steps.filter.outputs.sheet }} | |
sheet-json: ${{ steps.filter.outputs.sheet_files }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
# Enable listing of files matching each filter. | |
# Paths to files will be available in `${FILTER_NAME}_files` output variable. | |
# Paths will be escaped and space-delimited. | |
# Output is usable as command-line argument list in Linux shell | |
list-files: shell | |
filters: | | |
sheet: | |
- added|modified: '*/sheet.json' | |
- id: 'auth' | |
if: steps.filter.outputs.sheet == 'true' | |
uses: 'google-github-actions/auth@v1' | |
with: | |
credentials_json: '${{ secrets.SHEET_HTTP_GCP_KEYFILE }}' | |
- name: 'Set up Cloud SDK' | |
if: steps.filter.outputs.sheet == 'true' | |
uses: 'google-github-actions/setup-gcloud@v1' | |
- name: 'Use gcloud CLI' | |
if: steps.filter.outputs.sheet == 'true' | |
run: 'gcloud info' | |
- uses: oven-sh/setup-bun@v1 | |
if: steps.filter.outputs.sheet == 'true' | |
- run: bun install | |
if: steps.filter.outputs.sheet == 'true' | |
working-directory: contrib/sheet-pixie | |
# Handles when sheets have been updated individually | |
- run: bun run contrib/sheet-pixie/index.ts ${{ steps.filter.outputs.sheet_files }} | |
if: steps.filter.outputs.sheet == 'true' | |
env: | |
DEST_DIR: ${{ runner.temp }}/${{ env.CDN_SHEETS_FOLDER }} | |
- run: find ${{ env.DEST_DIR }} -maxdepth 1 -type d -exec sh -c 'cp -R --verbose "$(basename "{}")/translations" "{}/"' 2>/dev/null \; | |
if: steps.filter.outputs.sheet == 'true' | |
env: | |
DEST_DIR: ${{ runner.temp }}/${{ env.CDN_SHEETS_FOLDER }} | |
- run: gcloud storage rsync --project=roll20-actual ${{ runner.temp }}/${{ env.CDN_SHEETS_FOLDER }} gs://roll20-cdn/${{ env.CDN_SHEETS_FOLDER }} --cache-control='no-cache' --recursive | |
if: steps.filter.outputs.sheet == 'true' | |
env: | |
DEST_DIR: ${{ runner.temp }}/${{ env.CDN_SHEETS_FOLDER }} |