Patch transient CI failures due to busy file system #729
Workflow file for this run
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 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 |