libcubescript/.github/workflows/build.yaml

87 lines
2.5 KiB
YAML

name: CI
on: push
jobs:
linux:
name: Linux
runs-on: ubuntu-20.04
env:
TARGET: '${{ matrix.config.target }}'
CC: '${{ matrix.config.cc }}'
BUILDTYPE: '${{ matrix.config.buildtype }}'
strategy:
matrix:
config:
# x86_64: test gcc, clang, + release mode to catch assert bugs
- { target: x86_64-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: x86_64-linux-gnu, cc: gcc-10, buildtype: release }
- { target: x86_64-linux-gnu, cc: clang, buildtype: debugoptimized }
# 32-bit x86
- { target: i686-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
# all powerpc
- { target: powerpc64le-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: powerpc64-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: powerpc-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
# aarch64 and arm
- { target: aarch64-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: arm-linux-gnueabi, cc: gcc-10, buildtype: debugoptimized }
# riscv64 and s390x
- { target: riscv64-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: s390x-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
# mips, m68k
- { target: mips-linux-gnu, cc: gcc-10, buildtype: debugoptimized }
- { target: m68k-linux-gnu, cc: gcc-10, buildtype: debug }
# x86_64 windows cross, release mode
- { target: x86_64-w64-mingw32, cc: gcc, buildtype: release }
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Prepare environment
run: bash ./.ci/install-env
- name: Build and test cubescript
run: bash ./.ci/build-cs
windows:
name: Windows
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Prepare environment
run: bash ./.ci/install-env-windows
- name: Build and test cubescript
run: bash ./.ci/build-cs-windows
mac:
name: MacOS
runs-on: macos-10.15
env:
TARGET: 'darwin'
CC: 'clang'
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Prepare environment
run: bash ./.ci/install-env
- name: Build and test cubescript
run: bash ./.ci/build-cs