Next v8 - Filters #482
Workflow file for this run
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: Node.js CI | |
on: | |
push: | |
branches: [ '**' ] | |
release: | |
types: [ published ] | |
pull_request: | |
branches: [ '**' ] | |
jobs: | |
build: | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN || '' }} | |
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID || '' }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
SOURCE_DIR: 'dist' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Canvas Dependencies | |
run: sudo apt-get install xvfb | |
- name: Use Node.js 18.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
registry-url: 'https://registry.npmjs.org' | |
- name: Install npm | |
run: npm install -g npm@8 | |
- name: Install Dependencies | |
run: npm install | |
# All the below are deploy-related steps | |
- name: Extract Branch Name | |
id: branch_name | |
if: github.event_name == 'push' | |
run: echo BRANCH_NAME=${GITHUB_REF/refs\/heads\//} >> $GITHUB_OUTPUT | |
- name: Build for Distribution | |
run: xvfb-run --auto-servernum npm run dist | |
# Append assets to releases | |
- name: Upload Assets to Release | |
if: github.event_name == 'release' | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
./bundle/dist/browser/* | |
# Examples: | |
# 1) PR feature/acme merged into dev | |
# 2) branch A merged into branch B | |
# 3) branch A pushed directly to git | |
- name: Deploy Non-Tag Branches | |
uses: jakejarvis/s3-sync-action@master | |
if: github.event_name == 'push' && env.AWS_ACCESS_KEY_ID != '' | |
with: | |
args: --acl public-read --follow-symlinks --delete --cache-control "max-age=60" | |
env: | |
DEST_DIR: ${{ steps.branch_name.outputs.BRANCH_NAME }} | |
# Release is published and deployed into s3://bucket-name/v5.2.2/ | |
- name: Deploy Released Branches | |
uses: jakejarvis/s3-sync-action@master | |
if: github.event_name == 'release' && env.AWS_ACCESS_KEY_ID != '' | |
with: | |
args: --acl public-read --follow-symlinks --delete --cache-control "max-age=2592000" | |
env: | |
DEST_DIR: ${{ github.event.release.tag_name }} | |
# Same release from previous deployed into s3://bucket-name/latest/ | |
- name: Deploy Latest Release | |
uses: jakejarvis/s3-sync-action@master | |
if: github.event_name == 'release' && github.event.release.prerelease == false && env.AWS_ACCESS_KEY_ID != '' | |
with: | |
args: --acl public-read --follow-symlinks --delete --cache-control "max-age=1209600" | |
env: | |
DEST_DIR: 'latest' | |
# Publish to NPM | |
- name: Publish Latest Release | |
if: github.event_name == 'release' && github.event.release.prerelease == false && env.NODE_AUTH_TOKEN != '' | |
run: npm run publish-ci | |
# Publish to NPM with prerelease dist-tag | |
- name: Publish Latest Prerelease | |
if: github.event_name == 'release' && github.event.release.prerelease && env.NODE_AUTH_TOKEN != '' | |
run: npm run publish-ci -- --dist-tag prerelease |