Skip to content

Patch transient CI failures due to busy file system #729

Patch transient CI failures due to busy file system

Patch transient CI failures due to busy file system #729

Workflow file for this run

name: CI for Autotools/Darwin
on:
push:
paths-ignore:
- "**/CMakeLists.txt"
- "**.cmake"
- "**.cmake.in"
- "cmake/**"
- "CMake*"
- ".github/workflows/ci.yml"
- ".github/workflows/ci_cmake.yml"
- ".github/workflows/composite-cmake/**"
pull_request:
env:
# Due to busy file system problems on the CI runners, we introduced a patch to
# sleep if the MPI count of an I/O operation is unexpectedly 0 and then retry
# the I/O operation once. The time is in milliseconds.
IO_SLEEP_TIME: 5
jobs:
darwin:
runs-on: macos-latest
name: Autotools build on Darwin
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
steps:
- run: echo "This job is running on a ${{ runner.os }} server hosted by GitHub"
- uses: actions/checkout@main
name: Checkout source code
- name: Patch I/O for CI by sleeping if I/O intensity is too high
run: git apply doc/patch/patch-CI-IO.patch
- name: Install system dependencies
run: brew install open-mpi libtool automake
- name: Run bootstrap script
run: ./bootstrap
- name: Make check without MPI, with debug
run: |
DIR="checkdebug" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-debug \
CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter" \
CPPFLAGS="-DSC_HACK_MPI_SLEEP=$IO_SLEEP_TIME"
make -j V=0
make -j check V=0
- name: Make check with MPI and debug
run: |
DIR="checkMPIdebug" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug \
CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter" \
CPPFLAGS="-DSC_HACK_MPI_SLEEP=$IO_SLEEP_TIME"
make -j V=0
make -j check V=0
- name: Make check with MPI, debug and C++ compiler
run: |
DIR="checkMPIdebugCXX" && mkdir -p "$DIR" && cd "$DIR"
../configure --enable-mpi --enable-debug CC=mpicxx \
CFLAGS="-O0 -g -Wall -Wextra -Wno-unused-parameter" \
CPPFLAGS="-DSC_HACK_MPI_SLEEP=$IO_SLEEP_TIME"
make -j V=0
make -j check V=0
- name: Upload log files
if: always()
uses: actions/upload-artifact@main
with:
name: darwin_log
path: |
./**/config.log
./**/test-suite.log
./**/test/*.log