build: replace bash
-isms with sh
-friendly test
and case
, cleanup
#180
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: Build and test binds | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
concurrency: | |
# SHA is added to the end if on `main` to let all main workflows run | |
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main') && github.sha || '' }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: ${{ matrix.os }}, Python ${{ matrix.python }}, Go ${{ matrix.golang }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-latest, ubuntu-latest] | |
golang: [ '1.17' ] | |
python: ['3.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- uses: chia-network/actions/setup-python@main | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Test Python implementation | |
run: | | |
python python-impl/impl-test.py | |
- name: Install Emscripten SDK | |
uses: mymindstorm/setup-emsdk@v11 | |
- name: Build JavaScript bindings | |
run: | | |
emcc -v | |
sh emsdk_build.sh | |
- name: Test JavaScript bindings | |
run: | | |
sh js_test.sh | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: ^${{ matrix.golang }} | |
- name: Prepare build system for Ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get update | |
sudo apt-get install -qq --yes valgrind libgmp-dev cmake | |
hash -r | |
cmake --version | |
- name: Prepare build system for macOS | |
if: startsWith(matrix.os, 'macos') | |
run: | | |
ls -l | |
export MACOSX_DEPLOYMENT_TARGET=10.14 | |
brew install gmp | |
- name: Build library using CMake | |
run: | | |
mkdir -p build && cd build | |
cmake .. | |
cmake --build . -- -j 6 | |
- name: Build Go bindings | |
# TODO: macos build is broken. Whoever needs this - please fix it and remove `if` below. | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
cd go-bindings | |
make |