0.21.6 #998
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 CI | |
# Push tests pushes; PR tests merges | |
on: [ push, pull_request ] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
# Test the build | |
test: | |
# Setup | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
node-version: [ 16.x, 18.x, 20.x ] | |
os: [ windows-latest, ubuntu-latest, macOS-latest, self-hosted ] | |
# Go | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Env | |
run: | | |
echo "Event name: ${{ github.event_name }}" | |
echo "Git ref: ${{ github.ref }}" | |
echo "GH actor: ${{ github.actor }}" | |
echo "SHA: ${{ github.sha }}" | |
VER=`node --version`; echo "Node ver: $VER" | |
VER=`npm --version`; echo "npm ver: $VER" | |
- name: Install Globals | |
run: npm install -g @enhance/arc-plugin-enhance | |
- name: Install | |
run: npm install | |
- name: Test | |
run: npm test | |
env: | |
CI: true | |
# ----- Only git tag testing + release deployment beyond this point ----- # | |
# Publish to npm as @begin/deploy | |
npm-publish: | |
needs: test | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
registry-url: https://registry.npmjs.org/ | |
- name: Publish @RC to npm | |
if: contains(github.ref, 'RC') | |
run: npm publish --tag RC | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Publish @latest to npm | |
if: contains(github.ref, 'RC') == false | |
run: npm publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# Publish the build to S3 | |
publish: | |
# Setup | |
# needs: test | |
if: startsWith(github.ref, 'refs/tags/v') || | |
github.ref == 'refs/heads/main' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, self-hosted ] | |
# Go | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install aws-sdk | |
run: npm i aws-sdk | |
- name: Install | |
run: npm i | |
- name: Publish 'latest' (aka production) build | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: npm run publish-binary | |
env: | |
DEPLOY: prod | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
BEGIN_CLI_CLIENT_ID_STAGING: ${{ secrets.BEGIN_CLI_CLIENT_ID_STAGING }} | |
BEGIN_CLI_CLIENT_ID_PRODUCTION: ${{ secrets.BEGIN_CLI_CLIENT_ID_PRODUCTION }} | |
S3_BUCKET: ${{ secrets.S3_BUCKET }} | |
- name: Publish 'main' (aka canary) build | |
if: github.ref == 'refs/heads/main' | |
run: npm run publish-binary | |
env: | |
DEPLOY: main | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
BEGIN_CLI_CLIENT_ID_STAGING: ${{ secrets.BEGIN_CLI_CLIENT_ID_STAGING }} | |
BEGIN_CLI_CLIENT_ID_PRODUCTION: ${{ secrets.BEGIN_CLI_CLIENT_ID_PRODUCTION }} | |
S3_BUCKET: ${{ secrets.S3_BUCKET }} | |
# Deploy to the API + CDN | |
deploy: | |
# Setup | |
needs: publish | |
if: startsWith(github.ref, 'refs/tags/v') || | |
github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
# Go | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install | |
run: npm i aws-sdk | |
- name: Deploy 'latest' (aka production) build | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: npm run deploy | |
env: | |
DEPLOY: prod | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
CF_DISTRO: ${{ secrets.CF_DISTRO }} | |
LATEST_API: ${{ secrets.LATEST_API }} | |
- name: Deploy 'main' (aka canary) build | |
if: github.ref == 'refs/heads/main' | |
run: npm run deploy | |
env: | |
DEPLOY: main | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
CF_DISTRO: ${{ secrets.CF_DISTRO }} | |
LATEST_API: ${{ secrets.LATEST_API }} |