Skip to content

TriBITS Testing

TriBITS Testing #1871

name: TriBITS Testing
on:
schedule:
- cron: '10 6 * * *' # Run 10 minutes after 2 AM EDT (6:10 UTC)
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
inputs:
ctest_build_name_suffix:
description: 'Add a suffix to build names on CDash'
required: false
jobs:
build:
strategy:
max-parallel: 4 # Only limit to 1 for debugging?
fail-fast: false # Allow each job to run to completion even if other jobs fail first
matrix:
config:
- { os: ubuntu-latest, cmake: "3.23.1", generator: "makefiles", python: "3.8", cc: gcc-9, cxx: g++-9, fc: gfortran-9 }
- { os: ubuntu-latest, cmake: "3.24.3", generator: "makefiles", python: "3.8", cc: gcc-10, cxx: g++-10 }
- { os: ubuntu-latest, cmake: "3.24.3", generator: "makefiles", python: "3.8", cc: gcc-11, cxx: g++-11, fc: gfortran-11, no_have_ninja: no-ninja }
- { os: ubuntu-latest, cmake: "3.25.2", generator: "makefiles", python: "3.8", cc: gcc-11, cxx: g++-11, fc: gfortran-11 }
runs-on: ${{ matrix.config.os }}
steps:
- uses: actions/checkout@v2
- name: Print GitHub Actions Environment Variables
run: |
set | grep "^GITHUB_"
- name: Update OS
run: |
sudo apt-get update -y
- name: Install CMake
run: |
wget -O cmake.sh https://github.com/Kitware/CMake/releases/download/v${{ matrix.config.cmake }}/cmake-${{ matrix.config.cmake }}-Linux-x86_64.sh
sudo sh cmake.sh --skip-license --exclude-subdir --prefix=/usr/local/
- name: Install packages
run: |
sudo apt-get install -y ${{ matrix.config.cc }} ${{ matrix.config.cxx }} ${{ matrix.config.fc }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/${{ matrix.config.cc }} 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/${{ matrix.config.cxx }} 10
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/${{ matrix.config.fc }} 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 20
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 20
sudo update-alternatives --set c++ /usr/bin/g++
sudo update-alternatives --install /usr/bin/fortrann fortrann /usr/bin/gfortran 20
sudo update-alternatives --set fortrann /usr/bin/gfortran
sudo apt-get -y install valgrind
if [[ "${{ matrix.config.no_have_ninja }}" != "no-ninja" ]] ; then sudo apt-get -y install ninja-build ; fi
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.config.python }}
- name: Install Python packages
run: |
pip3 install sphinx sphinx-rtd-theme # For testing doc build
- name: Version checks
run: |
echo "Checking cmake path and version"
which cmake
cmake --version
if [[ "${{ matrix.config.no_have_ninja }}" != "no-ninja" ]] ; then echo "Checking ninja path and version" ; which ninja ; ninja --version ; fi
echo "Checking gcc path and version"
which ${{ matrix.config.cc }}
${{ matrix.config.cc }} --version
echo "Checking g++ path and version"
which ${{ matrix.config.cxx }}
${{ matrix.config.cxx }} --version
if [ "${{ matrix.config.fc }}" = "" ]; then echo "No fortran compiler"; else echo "Checking gfortran path and version" && which ${{ matrix.config.fc }} && ${{ matrix.config.fc }} --version; fi
- name: Fetch repo tags
run: |
echo "Running: git fetch origin 'refs/tags/*:refs/tags/*'"
git fetch origin 'refs/tags/*:refs/tags/*'
echo "Running: git tag"
git tag
- name: Run configure, build, test, and submit to CDash
run: |
cd ..
env CTEST_BUILD_NAME_SUFFIX=${{ github.event.inputs.ctest_build_name_suffix }} \
TRIBITS_ADD_LD_LIBRARY_PATH_HACK_FOR_SIMPLETPL=ON \
./TriBITS/cmake/ctest/github_actions/run_github_actions_ctest_driver.sh \
--os ${{ matrix.config.os }} \
--cmake-ver ${{ matrix.config.cmake }} \
--generator ${{ matrix.config.generator }} \
--python-ver ${{ matrix.config.python }} \
--cxx-compiler-and-ver ${{ matrix.config.cxx }} \
--fortran-compiler-and-ver ${{ matrix.config.fc }} \
--no-have-ninja ${{ matrix.config.no_have_ninja }} \
--github-repo-match-to-submit TriBITSPub/TriBITS
- name: URL to results on CDash
run: |
cd ..
echo "See results posted on CDash:"
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo
cat tribits-build/BUILD/CDashResults.txt
echo
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"