Node CI #377
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; workflow dispatch updates automatically from plugins / performance | |
on: [ push, pull_request, workflow_dispatch ] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
# Test the build | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Use latest tag | |
if: github.event_name == 'workflow_dispatch' | |
run: | | |
git fetch --tags | |
git checkout $(git describe --tags `git rev-list --tags --max-count=1`) | |
- 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" | |
echo "OS ver: ${{ runner.os }}" | |
- name: Install | |
run: npm install | |
- name: Run tests | |
run: npm run test | |
# Deploy the build | |
deploy: | |
needs: build | |
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' | |
runs-on: ubuntu-latest | |
concurrency: | |
group: staging_${{ github.repository }} | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Use latest tag | |
if: github.event_name == 'workflow_dispatch' | |
run: | | |
git fetch --tags | |
git checkout $(git describe --tags `git rev-list --tags --max-count=1`) | |
- name: Install | |
run: npm install | |
- name: Generate data | |
run: npm run gen | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: Deploy to staging | |
if: github.ref == 'refs/heads/main' && github.event_name != 'workflow_dispatch' | |
uses: beginner-corp/actions/deploy@v1 | |
with: | |
begin_token: ${{ secrets.BEGIN_TOKEN }} | |
begin_env_name: staging | |
channel: 'main' | |
- name: Deploy to production | |
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' | |
uses: beginner-corp/actions/deploy@v1 | |
with: | |
begin_token: ${{ secrets.BEGIN_TOKEN }} | |
begin_env_name: production | |
channel: 'main' |