CI #791
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: CI | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '5 4 * * 2' # once a week on Tuesday | |
jobs: | |
check_format: | |
name: Check Format | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./travis.sh | |
env: | |
CHECK_CLANG_FORMAT: 1 | |
build: | |
name: Build (${{ matrix.os }}, llvm-${{ matrix.llvm }}, cuda=${{ matrix.cuda }}, ${{ matrix.lua }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# Note: macOS 12 runs on x86 hardware, and 14 runs on M1 hardware | |
os: ['macos-12', 'macos-14', 'windows-2022'] | |
llvm: ['11', '12', '13', '14', '15', '16', '17', '18'] | |
cuda: ['0', '1'] | |
lua: ['luajit', 'moonjit'] | |
exclude: | |
# macOS: exclude cuda | |
- os: 'macos-12' | |
cuda: '1' | |
- os: 'macos-14' | |
cuda: '1' | |
# macOS 14: exclude Moonjit (M1 requires LuaJIT) | |
- os: 'macos-14' | |
lua: 'moonjit' | |
# macOS 14: exclude LLVM 11-15 | |
- os: 'macos-14' | |
llvm: '11' | |
- os: 'macos-14' | |
llvm: '12' | |
- os: 'macos-14' | |
llvm: '13' | |
- os: 'macos-14' | |
llvm: '14' | |
- os: 'macos-14' | |
llvm: '15' | |
# Windows: exclude LLVM 12-18 | |
- os: 'windows-2022' | |
llvm: '12' | |
- os: 'windows-2022' | |
llvm: '13' | |
- os: 'windows-2022' | |
llvm: '14' | |
- os: 'windows-2022' | |
llvm: '15' | |
- os: 'windows-2022' | |
llvm: '16' | |
- os: 'windows-2022' | |
llvm: '17' | |
- os: 'windows-2022' | |
llvm: '18' | |
# CUDA: only LLVM 11 | |
- llvm: '12' | |
cuda: '1' | |
- llvm: '13' | |
cuda: '1' | |
- llvm: '14' | |
cuda: '1' | |
- llvm: '15' | |
cuda: '1' | |
- llvm: '16' | |
cuda: '1' | |
- llvm: '17' | |
cuda: '1' | |
- llvm: '18' | |
cuda: '1' | |
# Moonjit: only LLVM 12 | |
- llvm: '11' | |
lua: 'moonjit' | |
- llvm: '13' | |
lua: 'moonjit' | |
- llvm: '14' | |
lua: 'moonjit' | |
- llvm: '15' | |
lua: 'moonjit' | |
- llvm: '16' | |
lua: 'moonjit' | |
- llvm: '17' | |
lua: 'moonjit' | |
- llvm: '18' | |
lua: 'moonjit' | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./travis.sh | |
shell: bash | |
env: | |
LLVM_VERSION: ${{ matrix.llvm }} | |
USE_CUDA: ${{ matrix.cuda }} | |
STATIC_LLVM: 1 | |
STATIC_LUAJIT: 1 | |
SLIB_INCLUDE_LLVM: 1 | |
SLIB_INCLUDE_LUAJIT: 1 | |
TERRA_LUA: ${{ matrix.lua }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: terra-${{ matrix.os }}-x86_64-llvm-${{ matrix.llvm }} | |
path: | | |
terra-*.tar.xz | |
terra-*.7z | |
docker: | |
name: Docker (${{ matrix.distro }}, llvm-${{ matrix.llvm }}, ${{ matrix.lua }}, static=${{ matrix.static }}, slib=${{ matrix.slib }}, cuda=${{ matrix.cuda }}, ${{ matrix.variant }}) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
distro: ['ubuntu-18.04'] | |
llvm: ['11', '12.0.1', '13.0.1', '14.0.6', '15.0.2', '16.0.3', '17.0.5', '18.1.7'] | |
lua: ['luajit', 'moonjit'] | |
cuda: ['0', '1'] | |
test: ['1'] | |
exclude: | |
# CUDA with LLVM 13 only: | |
- llvm: '11' | |
cuda: '1' | |
- llvm: '12.0.1' | |
cuda: '1' | |
- llvm: '14.0.6' | |
cuda: '1' | |
- llvm: '15.0.2' | |
cuda: '1' | |
- llvm: '16.0.3' | |
cuda: '1' | |
- llvm: '17.0.5' | |
cuda: '1' | |
- llvm: '18.1.7' | |
cuda: '1' | |
# Moonjit with LLVM 14 only: | |
- llvm: '11' | |
lua: 'moonjit' | |
- llvm: '12.0.1' | |
lua: 'moonjit' | |
- llvm: '13.0.1' | |
lua: 'moonjit' | |
- llvm: '15.0.2' | |
lua: 'moonjit' | |
- llvm: '16.0.3' | |
lua: 'moonjit' | |
- llvm: '17.0.5' | |
lua: 'moonjit' | |
- llvm: '18.1.7' | |
lua: 'moonjit' | |
include: | |
# Defaults: | |
- slib: '1' | |
- static: '1' | |
# Assign variants to the basic configurations: | |
- variant: 'prebuilt' | |
- llvm: '11' | |
variant: 'upstream' | |
# Some additional configurations: | |
# LLVM 12, 13, 14 on Ubuntu 22.04 | |
- distro: 'ubuntu-22.04' | |
llvm: '12' | |
lua: 'luajit' | |
cuda: '0' | |
variant: 'package' | |
slib: '1' | |
static: '1' | |
test: '1' | |
- distro: 'ubuntu-22.04' | |
llvm: '13' | |
lua: 'luajit' | |
cuda: '0' | |
variant: 'package' | |
slib: '1' | |
static: '1' | |
test: '1' | |
- distro: 'ubuntu-22.04' | |
llvm: '14' | |
lua: 'luajit' | |
cuda: '0' | |
variant: 'package' | |
slib: '1' | |
static: '1' | |
test: '1' | |
# LLVM 14, no-slib/no-static, Ubuntu 22.04 | |
- distro: 'ubuntu-22.04' | |
llvm: '14' | |
lua: 'luajit' | |
cuda: '0' | |
variant: 'package' | |
slib: '0' | |
static: '1' | |
test: '1' | |
# - distro: 'ubuntu-22.04' | |
# llvm: '14' | |
# lua: 'luajit' | |
# cuda: '0' | |
# variant: 'package' | |
# slib: '0' | |
# static: '0' | |
# test: '1' | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./travis.sh | |
env: | |
DOCKER_DISTRO: ${{ matrix.distro }} | |
DOCKER_LLVM: ${{ matrix.llvm }} | |
DOCKER_LUA: ${{ matrix.lua }} | |
DOCKER_STATIC: ${{ matrix.static }} | |
DOCKER_SLIB: ${{ matrix.slib }} | |
DOCKER_CUDA: ${{ matrix.cuda }} | |
DOCKER_VARIANT: ${{ matrix.variant }} | |
DOCKER_TEST: ${{ matrix.test }} | |
multiarch: | |
name: Multiarch (${{ matrix.distro }}, ${{ matrix.arch }}, llvm-${{ matrix.llvm }}, cuda=${{ matrix.cuda }}, ${{ matrix.variant }}) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
distro: ['ubuntu-18.04'] | |
arch: ['arm64', 'ppc64le'] | |
llvm: ['11.1.0', '13.0.0'] | |
variant: ['prebuilt'] | |
cuda: ['0'] | |
test: ['0'] | |
exclude: | |
- arch: 'arm64' | |
llvm: '13.0.0' | |
- arch: 'ppc64le' | |
llvm: '11.1.0' | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./travis.sh | |
env: | |
DOCKER_DISTRO: ${{ matrix.distro }} | |
DOCKER_ARCH: ${{ matrix.arch }} | |
DOCKER_LLVM: ${{ matrix.llvm }} | |
DOCKER_CUDA: ${{ matrix.cuda }} | |
DOCKER_VARIANT: ${{ matrix.variant }} | |
DOCKER_TEST: ${{ matrix.test }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: docker-${{ matrix.distro }}-${{ matrix.arch }}-llvm-${{ matrix.llvm }} | |
path: | | |
terra-*.tar.xz | |
terra-*.7z | |
compat: | |
name: Compatibility Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: ./docker/compatibility_test.sh ubuntu 18.04 "18.04 20.04 22.04 24.04" "" 18.1.7 luajit prebuilt 2 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: docker-ubuntu-18.04-x86_64-llvm-18 | |
path: | | |
terra-*.tar.xz | |
terra-*.7z | |
nix: | |
name: Nix Build (nixpkgs-${{ matrix.nixpkgs }}, enableCUDA=${{ matrix.cuda }}) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
nixpkgs: ['unstable', '24.05'] | |
cuda: ['false', 'true'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: cachix/install-nix-action@v13 | |
with: | |
nix_path: nixpkgs=channel:nixos-${{ matrix.nixpkgs }} | |
- run: nix-build --arg enableCUDA ${{ matrix.cuda }} | |
env: | |
NIXPKGS_ALLOW_UNFREE: 1 |