Run unit tests in CI #263
Workflow file for this run
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: Javascript | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- synchronize | |
- opened | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
linux: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- TARGET: armv7-unknown-linux-gnueabi | |
ARCH: arm | |
PLATFORM: linux | |
- TARGET: x86_64-unknown-linux-gnu | |
ARCH: x64 | |
PLATFORM: linux | |
- TARGET: i686-unknown-linux-gnu | |
ARCH: ia32 | |
PLATFORM: linux | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.2" # Fixed since we mount the path below | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Setup nodejs | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Use npm v8 | |
# https://github.com/npm/cli/issues/4552 | |
run: npm -g i npm@~8.3 | |
- name: Install npm deps | |
run: npm install -g jest @mapbox/node-pre-gyp cargo-cp-artifact protobufjs rewire | |
- name: Build | |
run: | | |
cd libs/gl-client-js/ | |
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=/usr/bin/arm-linux-gnueabi-gcc | |
export CARGO_TARGET=${{ matrix.TARGET }} | |
npm run build | |
- name: Bundle | |
run: | | |
mkdir gl-client | |
cp libs/gl-client-js/index.node gl-client/ | |
python libs/gl-client-js/helper.py ${{ matrix.ARCH }} | |
- name: Upload binaries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: binaries | |
path: gl-client-*.tar.gz | |
macos: | |
runs-on: macos-11 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- TARGET: x86_64 | |
ARCH: x86_64 | |
- TARGET: aarch64 | |
ARCH: arm64 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.2" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Use npm v8 | |
# https://github.com/npm/cli/issues/4552 | |
run: npm -g i npm@~8.3 | |
- name: Install npm deps | |
run: npm install -g jest @mapbox/node-pre-gyp cargo-cp-artifact protobufjs rewire | |
- name: Build | |
run: | | |
cd libs/gl-client-js/ | |
export CARGO_TARGET=${{ matrix.TARGET }} | |
npm run build | |
- name: Bundle | |
run: | | |
brew install [email protected] | |
mkdir gl-client | |
cp libs/gl-client-js/index.node gl-client/ | |
python3 libs/gl-client-js/helper.py ${{ matrix.ARCH }} | |
- name: Upload binaries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: binaries | |
path: gl-client-*.tar.gz | |
windows: | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- TARGET: x86_64-pc-windows-gnu | |
ARCH: x64 | |
- TARGET: i686-pc-windows-gnu | |
ARCH: ia32 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
version: "23.2" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Use npm v8 | |
# https://github.com/npm/cli/issues/4552 | |
run: npm -g i npm@~8.3 | |
- name: Install npm deps | |
run: npm install -g jest @mapbox/node-pre-gyp cargo-cp-artifact protobufjs rewire | |
- name: Build | |
run: | | |
cd libs\gl-client-js | |
set CARGO_TARGET=${{ matrix.TARGET }} | |
npm run build | |
- name: Bundle | |
run: | | |
mkdir gl-client | |
cp libs/gl-client-js/index.node gl-client/ | |
python libs/gl-client-js/helper.py ${{ matrix.ARCH }} | |
- name: Upload binaries | |
uses: actions/upload-artifact@v3 | |
with: | |
name: binaries | |
path: gl-client-*.tar.gz |