Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: setup GitHub Actions #1782

Merged
merged 1 commit into from Jan 10, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
74 changes: 74 additions & 0 deletions .github/workflows/ci.yml
@@ -0,0 +1,74 @@
name: CI

on:
push:
pull_request:

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v2

- name: ⎔ Setup node ${{ matrix.node }}
uses: actions/setup-node@v2
with:
cache: npm

- name: 📥 Download deps
run: npm ci

- name: 🧪 Run lint
run: npm run lint

build:
runs-on: ${{ matrix.os }}
needs: lint
strategy:
fail-fast: false
matrix:
node:
- 12
- 14
- 16
- 17
os: [ubuntu-latest, macos-latest, windows-latest]
browser:
- FirefoxHeadless
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Edge and Safari runners seems to be abandoned and a little flaky, so didn't add them in, but can be added on platform specific includes:


steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.9.1
with:
access_token: ${{ secrets.GITHUB_TOKEN }}

- name: ⬇️ Checkout
uses: actions/checkout@v2

- name: ⎔ Setup node ${{ matrix.node }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
cache: npm

- name: 📥 Download deps
run: npm ci

- name: Run coverage
run: npm test

- name: Run browser tests
run: npm run mocha-browser-test -- --browsers ${{ matrix.browser }} --timeout 10000
env:
DISPLAY: :99.0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might not be needed anymore since switching to FirefoxHeadless


- name: Coverage
if: matrix.os == 'ubuntu-latest' && matrix.node == '14'
run: npm run coverage && npx nyc report --reporter=lcov

- name: Coveralls
if: matrix.os == 'ubuntu-latest' && matrix.node == '14'
uses: coverallsapp/github-action@1.1.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}