Add github workflow for qemu + s390x #1466
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: Test | |
on: [push, pull_request] | |
permissions: | |
contents: read | |
jobs: | |
test-posix: | |
name: Build and test on POSIX systems | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest ] | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Compile the project | |
run: make clean && make | |
- name: Test the project | |
run: make test | |
test-windows: | |
name: Build and test on Windows | |
runs-on: windows-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Build the project | |
shell: cmd | |
run: build_win | |
- name: Test the project | |
shell: cmd | |
run: build_win test | |
test-mingw: | |
name: Build on Windows with Mingw (no test yet) | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup Mingw | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
install: >- | |
base-devel | |
git | |
gcc | |
- name: Build the project | |
shell: cmd | |
run: make -j4 CC=gcc JANET_NO_AMALG=1 | |
test-mingw-linux: | |
name: Build and test with Mingw on Linux + Wine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup Mingw and wine | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update | |
sudo apt-get install libstdc++6:i386 libgcc-s1:i386 | |
sudo apt-get install gcc-mingw-w64-x86-64-win32 wine wine32 wine64 | |
- name: Compile the project | |
run: make clean && make CC=x86_64-w64-mingw32-gcc LD=x86_64-w64-mingw32-gcc UNAME=MINGW RUN=wine | |
- name: Test the project | |
run: make test UNAME=MINGW RUN=wine VERBOSE=1 | |
test-arm-linux: | |
name: Build and test ARM32 cross compilation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup qemu and cross compiler | |
run: | | |
sudo apt-get update | |
sudo apt-get install gcc-arm-linux-gnueabi qemu-user | |
- name: Compile the project | |
run: make RUN="qemu-arm -L /usr/arm-linux-gnueabi/" CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-gcc | |
- name: Test the project | |
run: make RUN="qemu-arm -L /usr/arm-linux-gnueabi/" SUBRUN="qemu-arm -L /usr/arm-linux-gnueabi/" test VERBOSE=1 | |
test-s390x-linux: | |
name: Build and test s390x in qemu | |
runs-on: s390x/ubuntu | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup compiler | |
run: | | |
sudo apt-get update | |
sudo apt-get install build-essential git | |
- name: Compile the project | |
run: make clean && make | |
- name: Test the project | |
run: make test |