Skip to content

WIP: Expand CI Configs #180

WIP: Expand CI Configs

WIP: Expand CI Configs #180

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
linux:
runs-on: ubunt-22.04
continue-on-error: true
strategy:
matrix:
compiler: [gcc, clang]
scheduler: [nemesis, sherwood]
topology: [hwloc, binders, no]
include:
- compiler: clang
clang_version: 11
gcc_version: 10
- compiler: clang
clang_version: 12
gcc_version: 11
- compiler: clang
clang_version: 13
gcc_version: 11
- compiler: clang
clang_version: 14
gcc_version: 11
- compiler:
clang_version: 15
gcc_version: 12
- compiler: clang
clang_version: 16
gcc_version: 13
- compiler: clang
clang_version: 17
gcc_version: 13
- compiler: gcc
gcc_version: 9
- compiler: gcc
gcc_version: 10
- compiler: gcc
gcc_version: 11
- compiler: gcc
gcc_version: 12
- compiler: gcc
gcc_version: 13
env:
CC: ${{ matrix.compiler == 'gcc' && format('gcc-{0}', matrix.gcc_version) || format('clang-{0}', matrix.clang_version) }}
CXX: ${{ matrix.compiler == 'gcc' && format('g++-{0}', matrix.gcc_version) || format('clang++-{0}', matrix.clang_version) }}
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.compiler == 'clang' && ( matrix.clang_version == '16' || matrix.clang_version == 17 ) }}
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-${{ matrix.clang_version }} main' && break || sleep 1
- if: ${{ matrix.gcc_version == '13' }}
run: sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test' && break || sleep 1
- name: install gcc
run: sudo apt-get install gcc-${{ matrix.gcc_version }}
- if ${{ matrix.compiler == 'clang' }}
run: sudo apt-get install clang-${{ matrix.clang_version }}

Check failure on line 65 in .github/workflows/CI.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/CI.yml

Invalid workflow file

You have an error in your yaml syntax on line 65
- if: ${{ matrix.topology != 'no' }}
run: |
sudo apt-get install hwloc libhwloc-dev
hwloc-ls --version
- name: build qthreads
run: |
./autogen.sh
./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
make -j2
- name: make check
run: |
timeout --foreground 3m make check
mac:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: install deps
run: |
brew install autoconf automake libtool coreutils # coreutils is to get gtimeout for CI and is not universally required by qthreads.
- name: install hwloc
run: |
brew install hwloc
hwloc-ls --version
- name: build qthreads
run: |
./autogen.sh
./configure --enable-picky
make -j3
- name: make check
run: |
gtimeout --foreground 8m make check
sanitizers:
runs-on: ubuntu-22.04
continue-on-error: true
strategy:
matrix:
sanitizer: [address, memory, thread, undefined]
scheduler: [nemesis, sherwood]
topology: [hwloc, binders, no]
env:
CC: clang-17
CXX: clang++-17
CFLAGS: "-fsanitize=${{ matrix.sanitizer }}"
CXXFLAGS: "-fsanitize=${{ matrix.sanitizer }}"
LDFLAGS: "-fsanitize=${{ matrix.sanitizer }}"
steps:
- uses: actions/checkout@v3
- name: install compiler
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' && break || sleep 1
sudo apt-get install clang-17
- if: ${{ matrix.topology != 'no' }}
run: |
sudo apt-get install hwloc libhwloc-dev
hwloc-ls --version
- name: build qthreads
run: |
./autogen.sh
./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
make -j2
- name: make check
run: |
timeout --foreground 6m make check