name: Node.js CI on: [push, pull_request] jobs: test: timeout-minutes: 30 strategy: matrix: node-version: - node/10 - node/12 - node/14 - node/15 compiler: - gcc - clang os: - ubuntu-16.04 # ubuntu-18.04/ubuntu-latest missing package g++-4.9 - macos-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Install system dependencies run: | if [ "${{ matrix.compiler }}" = "gcc" -a "${{ matrix.os }}" = ubuntu-* ]; then sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install g++-4.9 fi - name: Use Node.js ${{ matrix.node-version }} run: | git clone --branch v1.4.2 --depth 1 https://github.com/jasongin/nvs ~/.nvs . ~/.nvs/nvs.sh nvs --version nvs add ${{ matrix.node-version }} nvs use ${{ matrix.node-version }} node --version npm --version npm install - name: npm test run: | if [ "${{ matrix.compiler }}" = "gcc" ]; then export CC="gcc" CXX="g++" fi if [ "${{ matrix.compiler }}" = "gcc" -a "${{ matrix.os }}" = ubuntu-* ]; then export CC="gcc-4.9" CXX="g++-4.9" AR="gcc-ar-4.9" RANLIB="gcc-ranlib-4.9" NM="gcc-nm-4.9" fi if [ "${{ matrix.compiler }}" = "clang" ]; then export CC="clang" CXX="clang++" fi export CFLAGS="$CFLAGS -O3 --coverage" LDFLAGS="$LDFLAGS --coverage" echo "CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\"" npm run pretest -- --verbose node test