Check if we don't need to use gcc directly. #1500
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, macos-13 ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Build | |
run: make clean && make | |
- name: Test | |
run: make test | |
test-windows: | |
name: Build and test on Windows | |
strategy: | |
matrix: | |
os: [ windows-latest, windows-2019 ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Setup MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Build | |
shell: cmd | |
run: build_win | |
- name: Test | |
shell: cmd | |
run: build_win test | |
test-mingw: | |
name: Build on Windows with Mingw | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
strategy: | |
matrix: | |
msystem: [ UCRT64, MINGW64, MINGW32, CLANG64 ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Setup Mingw | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msystem }} | |
update: true | |
install: >- | |
base-devel | |
git | |
gcc | |
- name: Build | |
shell: cmd | |
run: make -j4 JANET_NO_AMALG=1 | |
- name: Test | |
shell: cmd | |
run: make -j4 JANET_NO_AMALG=1 | |
test-mingw-linux: | |
name: Build and test with Mingw on Linux + Wine | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
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: Build | |
run: make clean && make CC=x86_64-w64-mingw32-gcc LD=x86_64-w64-mingw32-gcc UNAME=MINGW RUN=wine | |
- name: Test | |
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 | |
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: Build | |
run: make RUN="qemu-arm -L /usr/arm-linux-gnueabi/" CC=arm-linux-gnueabi-gcc LD=arm-linux-gnueabi-gcc | |
- name: Test | |
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: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@master | |
- name: Do Qemu build and test | |
run: | | |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
docker run --rm -v .:/janet s390x/ubuntu bash -c "apt-get -y update && apt-get -y install git build-essential && cd /janet && make -j3 && make test" |