Change workflow bard routes (#388) #410
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: CI | |
on: [push, pull_request] | |
env: | |
YARN_GPG: no | |
npm_config_debug: yes | |
npm_config_build_from_source: true | |
jobs: | |
test: | |
strategy: | |
matrix: | |
node-version: [16, 18, 20] | |
os: [ubuntu-20.04, macos-11, macos-m1, windows-2019] | |
name: Test for node-${{ matrix.node-version }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
cache: yarn | |
node-version: ${{ matrix.node-version }} | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Run tests | |
run: yarn test | |
- name: "[Linux] Install lcov" | |
if: matrix.os == 'ubuntu-20.04' | |
run: sudo apt install lcov | |
- name: "[Linux] Generate coverage" | |
if: matrix.os == 'ubuntu-20.04' | |
run: | | |
cp -rl build/* build-tmp-napi-v3 | |
rm -r build | |
yarn c8 report --reporter=text-lcov > lcov-js.info | |
lcov -c -d . --no-external -o lcov-cpp.info | |
lcov -r lcov-cpp.info "*/node_modules/*" -o lcov-cpp.info | |
lcov -a lcov-js.info -a lcov-cpp.info -o lcov.info | |
- name: "[Linux] Send to Codacy" | |
if: matrix.os == 'ubuntu-20.04' | |
uses: codacy/codacy-coverage-reporter-action@v1 | |
with: | |
coverage-reports: lcov.info | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
test-alpine: | |
name: Test on Alpine Linux | |
runs-on: ubuntu-latest | |
container: | |
image: node:16-alpine | |
steps: | |
- name: Install build deps | |
run: apk add make g++ python3 git | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Run tests | |
run: yarn test | |
test-freebsd: | |
strategy: | |
matrix: | |
node-version: [16, 18, 20] | |
name: Test for node-${{ matrix.node-version }} on FreeBSD | |
runs-on: macos-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: vmactions/freebsd-vm@v0 | |
with: | |
envs: 'YARN_GPG npm_config_debug npm_config_build_from_source' | |
prepare: | | |
pkg install -y gmake python3 yarn-node${{ matrix.node-version }} | |
run: | | |
yarn install --frozen-lockfile | |
yarn test | |
sync: sshfs |