WIP: run eye tests #1706
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
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: Node.js CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20.x | |
- run: npm ci | |
- run: npm run build | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
test: | |
needs: build | |
strategy: | |
matrix: | |
node-version: [16.x, 18.x, 19.x, 20.x] | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- run: npm ci | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- run: npm test | |
benchmark: | |
needs: build | |
strategy: | |
matrix: | |
node-version: [ 20.x ] | |
os: [ ubuntu-latest ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Benchmarking Node.js ${{ matrix.node-version }} on ${{ matrix.os }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- run: npm ci | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- name: Run benchmark | |
run: npm run perf | |
- name: Store benchmark result | |
uses: benchmark-action/github-action-benchmark@v1 | |
with: | |
name: EYE JS Benchmark | |
tool: 'benchmarkjs' | |
output-file-path: perf/output.txt | |
github-token: ${{ secrets.GH_TOKEN }} | |
comment-on-alert: ${{ ! contains(github.head_ref, 'dependabot/npm_and_yarn/') }} | |
alert-comment-cc-users: '@jeswr' | |
alert-threshold: "110%" | |
fail-threshold: "125%" | |
gh-pages-branch: pages | |
auto-push: ${{ github.ref == 'refs/heads/main' }} | |
save-data-file: ${{ github.ref == 'refs/heads/main' }} | |
eslint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20.x | |
- name: npm install and lint | |
run: | | |
npm ci | |
npm run-script lint | |
release: | |
if: ${{ github.ref == 'refs/heads/main' }} | |
needs: [ eslint, test, benchmark ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20.x | |
- run: npm ci | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
- run: mkdir ./bundle | |
- name: "Create Bundle" | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: | | |
version=$(npx semantic-release --dry-run | grep -oP 'The next release version is \K[0-9]+\.[0-9]+\.[0-9]+') || true | |
if [ $version ] | |
then | |
npm run bundle:webpack -- --name=v$version | |
npm run bundle:latest -- --name=v$version | |
cp -r ./examples/prebuilt/ bundle/example/ | |
fi | |
- run: npm test | |
- name: Release | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: npx semantic-release |