Skip to content

Support canary events #231

Support canary events

Support canary events #231

Workflow file for this run

name: CI/CD
on:
push:
pull_request:
jobs:
spec:
name: Verify spec
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
EXPECT="$( cat spec.json | sha1sum )"
ACTUAL="$( curl https://stream.wikimedia.org/?spec | sha1sum )"
echo "Expected: $EXPECT"
echo "Actual: $ACTUAL"
if [[ "$EXPECT" != "$ACTUAL" ]]; then
echo "Spec has changed. Please update the code."
echo "Update with \`curl https://stream.wikimedia.org/?spec > spec.json\`"
exit 1
fi
build:
name: Build and test
needs: spec
runs-on: ubuntu-latest
strategy:
fail-fast: true
max-parallel: 1
matrix:
node-version: [ 14.x, 16.x, 18.x, 'lts/*', latest ]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build --if-present
- name: Test
run: npm test
deploy:
name: Publish (npm)
needs: build
if: ${{ startsWith( github.ref, 'refs/tags/v' ) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js lts/*
uses: actions/setup-node@v3
with:
node-version: lts/*
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build --if-present
- name: Test
run: npm test
- name: Publish
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_KEY }}