Skip to content

Merge pull request #205 from tim-griesbach/feature-scda #962

Merge pull request #205 from tim-griesbach/feature-scda

Merge pull request #205 from tim-griesbach/feature-scda #962

Workflow file for this run

name: CI for Autotools/Linux
on:
push:
paths-ignore:
- "**/CMakeLists.txt"
- "**.cmake"
- "**.cmake.in"
- "cmake/**"
- "CMake*"
- ".github/workflows/ci_cmake.yml"
- ".github/workflows/ci_darwin.yml"
- ".github/workflows/composite-cmake/**"
pull_request:
jobs:
linux-multi:
runs-on: ubuntu-latest
name: Autotools build on Linux
steps:
- name: Install system dependencies
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends \
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@main
- name: Run bootstrap script
run: ./bootstrap
- name: Make check with MPI and debug, without shared
shell: bash
run: |
DIR="checkMPIdebug_shared" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug --disable-shared \
CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter"
make -j V=0
make -j check V=0
- name: Make check with MPI, without debug
shell: bash
run: |
DIR="checkMPI" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi CFLAGS="-O2"
make -j V=0
make -j check V=0
- name: Make check without MPI, with debug
shell: bash
run: |
DIR="checkdebug" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-debug CFLAGS="-O0 -g -Wall -Wno-uninitialized"
make -j V=0
make -j check V=0
- name: Install JSON parser library halfway through CI run
run: |
sudo apt-get install -yq --no-install-recommends \
libjansson-dev
- name: Make check with MPI, debug and C++ compiler
shell: bash
run: |
DIR="checkMPIdebugCXX" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug CFLAGS="-O0" CC=mpicxx
make -j V=0
make -j check V=0
- name: Make check with OpenMP, MPI, debug
shell: bash
run: |
DIR="checkOpenMPMPIdebug" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-openmp="-fopenmp" --enable-mpi \
--enable-debug CFLAGS="-O0"
make -j V=0
make -j check V=0
- name: Make distcheck
shell: bash
run: |
DIR="distcheck" && mkdir -p "$DIR" && cd "$DIR"
../configure
make -j distcheck V=0
- name: Upload log files
if: always()
uses: actions/upload-artifact@main
with:
name: linux_multi_log
path: |
./**/config.log
./**/test-suite.log
./**/test/*.log
linux-valgrind:
runs-on: ubuntu-latest
name: Autotools with valgrind
steps:
- name: Install system dependencies
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends \
zlib1g-dev libmpich-dev mpich valgrind
- name: Checkout source code
uses: actions/checkout@main
- name: Run bootstrap script
run: ./bootstrap
- name: Make check with MPI, debug and valgrind, without shared
shell: bash
run: |
DIR="checkMPIdebug_valgrind" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug \
--disable-shared --enable-valgrind \
CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter"
make -j V=0
make -j check V=0
- name: Upload log files
if: always()
uses: actions/upload-artifact@main
with:
name: linux_valgrind_log
path: |
./**/config.log
./**/test-suite.log
./**/test/*.log
linux-tarball:
runs-on: ubuntu-latest
name: Pack tarball on Linux
steps:
- name: Install system dependencies
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends \
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@main
with:
fetch-depth: 0
- name: Identify version
shell: bash
run: |
git tag
git describe --abbrev=4 --match 'v*'
- name: Run bootstrap script
run: ./bootstrap
- name: Configure and make
shell: bash
run: |
DIR="tarball" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug \
CFLAGS="-O0 -g -pedantic -Wall -Wextra -Werror \
-Wno-unused-parameter -Wno-builtin-declaration-mismatch \
-Wno-implicit-fallthrough"
make -j V=0
make -j check V=0
make -j distcheck V=0
mv libsc-*.tar.gz ..
- name: Upload tarball
uses: actions/upload-artifact@main
with:
name: libsc_tarball
path: ./libsc-*.tar.gz
- name: Upload log files
if: always()
uses: actions/upload-artifact@main
with:
name: linux_tarball_log
path: |
./**/config.log
./**/test-suite.log
./**/test/*.log