Merge branch 'main' into fixed-version-comparison #6125
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: 'main' | |
on: | |
push: | |
pull_request: | |
jobs: | |
linux-gcc: | |
name: ${{ matrix.mode }} | |
runs-on: ubuntu-20.04 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
mode: | |
- test | |
- regression | |
- coverage | |
- install | |
- valgrind | |
env: | |
MODE: ${{ matrix.mode }} | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: | | |
bash .github/workflows/install_ubuntu_dependencies_build.sh | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: linux-${{ matrix.mode }} | |
- name: Configure shell | |
run: | | |
echo 'CC=gcc-11' >> $GITHUB_ENV | |
echo 'CXX=g++-11' >> $GITHUB_ENV | |
echo 'PATH=/usr/lib/ccache:'"$PATH" >> $GITHUB_ENV | |
echo 'PREFIX=/tmp/foedag-install' >> $GITHUB_ENV | |
echo "$PREFIX" >> $GITHUB_PATH | |
echo "ADDITIONAL_CMAKE_OPTIONS='-DMY_CXX_WARNING_FLAGS="-W -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -Werror -UNDEBUG"'" >> $GITHUB_ENV | |
echo 'RULE_MESSAGES=off' >> $GITHUB_ENV | |
- name: Show shell configuration | |
run: | | |
env | |
which cmake && cmake --version | |
which make && make --version | |
which python && python --version | |
which ninja && ninja --version | |
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh | |
which $CC && $CC --version | |
which $CXX && $CXX --version | |
- name: Test | |
if: matrix.mode == 'test' | |
run: | | |
make debug test/unittest-d | |
make release test/batch | |
make test/gui | |
# make test/openfpga | |
- name: Regression | |
if: matrix.mode == 'regression' | |
run: | | |
make regression | |
- name: Coverage | |
if: matrix.mode == 'coverage' | |
run: | | |
make test/coverage | |
- name: Valgrind | |
if: matrix.mode == 'valgrind' | |
run: | | |
make debug | |
make test/valgrind | |
- name: Upload coverage | |
# will show up under https://app.codecov.io/gh/os-fpga/FOEDAG | |
if: matrix.mode == 'coverage' | |
uses: codecov/[email protected] | |
with: | |
files: dbuild/code-coverage/coverage.xml | |
fail_ci_if_error: false | |
- name: Install Test | |
if: matrix.mode == 'install' | |
run: | | |
make release | |
make install | |
make clean # make sure we only see installation artifacts | |
make test_install | |
- name: Archive regression artifacts | |
if: matrix.mode == 'regression' && always() | |
uses: actions/[email protected] | |
with: | |
name: foedag-linux-gcc-regression | |
path: | | |
${{ github.workspace }}/build/test/ | |
${{ github.workspace }}/build/tests/ | |
# Reference: https://github.com/OPM/ResInsight/blob/dev/.github/workflows/centos7.yml | |
centos7-gcc: | |
name: ${{ matrix.mode }} | |
runs-on: ubuntu-20.04 | |
container: | |
image: centos:7 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
mode: | |
- test | |
env: | |
MODE: ${{ matrix.mode }} | |
steps: | |
- name: update Git | |
run: | | |
yum remove -y git* | |
yum install -y https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm | |
yum install -y git | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Show space before Qt install | |
run: df -h | |
- name: Install dependencies and build QT | |
run: | | |
bash .github/workflows/install_centos_dependencies_build.sh | |
- name: show space after Qt install | |
run: du -sch * && df -h | |
- name: Show shell configuration | |
run: | | |
env | |
source /opt/rh/devtoolset-11/enable | |
which gcc | |
which g++ | |
- name: Configure shell | |
run: | | |
source /opt/rh/devtoolset-11/enable | |
echo 'CC=/opt/rh/devtoolset-11/root/usr/bin/gcc' >> $GITHUB_ENV | |
echo 'CXX=/opt/rh/devtoolset-11/root/usr/bin/g++' >> $GITHUB_ENV | |
echo 'PATH=/usr/local/Qt-5.15.4/bin:/usr/lib/ccache:'"$PATH" >> $GITHUB_ENV | |
echo 'PREFIX=/tmp/foedag-install' >> $GITHUB_ENV | |
echo "$PREFIX" >> $GITHUB_PATH | |
echo "ADDITIONAL_CMAKE_OPTIONS='-DMY_CXX_WARNING_FLAGS="-W -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -Werror -UNDEBUG"'" >> $GITHUB_ENV | |
echo 'RULE_MESSAGES=off' >> $GITHUB_ENV | |
- name: Test | |
if: matrix.mode == 'test' | |
run: | | |
export LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/dbuild/bin/gtkwave/lib:$LD_LIBRARY_PATH | |
make debug test/unittest-d | |
make release test/batch | |
make test/gui | |
make regression | |
- name: show space after build & test | |
if: always () | |
run: du -sch * && df -h | |
# Reference: https://github.com/eyllanesc/69108420/blob/main/.github/workflows/test.yml | |
msys2-gcc: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
path-type: minimal | |
update: true | |
release: false | |
install: >- | |
base-devel | |
git | |
mingw-w64-x86_64-toolchain | |
mingw-w64-x86_64-cmake | |
mingw-w64-x86_64-qt5-base-debug | |
mingw-w64-x86_64-qt5 | |
mingw-w64-x86_64-qt5-declarative-debug | |
mingw-w64-x86_64-tcl | |
mingw-w64-x86_64-zlib | |
- name: Configure shell environment variables | |
run: | | |
export CWD=`pwd` | |
echo 'NO_TCMALLOC=On' >> $GITHUB_ENV | |
echo "PREFIX=$CWD/install" >> $GITHUB_ENV | |
- name: Show shell configuration | |
run: | | |
which git && git --version || true | |
which cmake && cmake --version || true | |
which make && make --version || true | |
which python && python --version || true | |
which ninja && ninja --version || true | |
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh || true | |
- name: Build | |
run: | | |
make VERBOSE=1 release | |
make debug | |
make install | |
- name: Test | |
run: | | |
make test_install | |
make XVFB="" test/unittest | |
make regression | |
windows-msvc: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: cmd | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.21.3' | |
- name: Use cmake | |
run: cmake --version | |
- name: Install Core Dependencies | |
run: | | |
choco install -y make | |
- name: Setup Python | |
uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
architecture: x64 | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
- run: git config --global core.autocrlf input | |
shell: bash | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Build & Test | |
run: | | |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
set CMAKE_GENERATOR=Ninja | |
set CC=cl | |
set CXX=cl | |
set NO_TCMALLOC=On | |
set PREFIX=%GITHUB_WORKSPACE%\install | |
set CPU_CORES=%NUMBER_OF_PROCESSORS% | |
set MAKE_DIR=C:\make\bin | |
#set TCL_DIR=%PROGRAMFILES%\Git\mingw64\bin | |
set PATH=%pythonLocation%;%MAKE_DIR%;%PATH% | |
#set PATH=%pythonLocation%;%MAKE_DIR%;%TCL_DIR%;%PATH% | |
set | |
where cmake && cmake --version | |
where make && make --version | |
where python && python --version | |
where ninja && ninja --version | |
make release | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
make install | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
make XVFB="" test/unittest | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
make test_install | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
make regression | |
if %errorlevel% neq 0 exit /b %errorlevel% | |
make test/batch | |
- name: Archive build artifacts | |
uses: actions/[email protected] | |
with: | |
name: foedag-windows-msvc | |
path: ${{ github.workspace }}/install | |
- name: Archive regression artifacts | |
if: always() | |
uses: actions/[email protected] | |
with: | |
name: foedag-windows-msvc-regression | |
path: | | |
${{ github.workspace }}/build/test/ | |
${{ github.workspace }}/build/tests/ | |
macos-gcc: | |
runs-on: macos-latest | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install dependencies | |
uses: jurplel/[email protected] | |
with: | |
setup-python: false | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: macos-gcc | |
- name: Configure shell | |
run: | | |
# Default xcode version 14.0.1 has reported bugs with linker | |
# Current recommended workaround is to downgrade to last known good version. | |
# https://github.com/actions/runner-images/issues/6350 | |
sudo xcode-select -s '/Applications/Xcode_13.4.1.app/Contents/Developer' | |
echo 'CC=gcc-11' >> $GITHUB_ENV | |
echo 'CXX=g++-11' >> $GITHUB_ENV | |
echo "PATH=$(brew --prefix)/opt/ccache/libexec:$PATH" >> $GITHUB_ENV | |
echo 'PREFIX=${GITHUB_WORKSPACE}/install' >> $GITHUB_ENV | |
echo "$PREFIX" >> $GITHUB_PATH | |
- name: Show shell configuration | |
run: | | |
env | |
which cmake && cmake --version | |
which make && make --version | |
which python && python --version | |
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh | |
which $CC && $CC --version | |
which $CXX && $CXX --version | |
- name: Build | |
run: | | |
make release | |
make install | |
- name: Unit tests | |
run: | | |
make test_install | |
- name: Regression tests | |
run: | | |
make regression | |
macos-clang: | |
runs-on: macos-latest | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
uses: jurplel/[email protected] | |
with: | |
setup-python: false | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: macos-clang | |
- name: Configure shell | |
run: | | |
echo 'PREFIX=${GITHUB_WORKSPACE}/install' >> $GITHUB_ENV | |
echo "PATH=$(brew --prefix)/opt/ccache/libexec:$PATH" >> $GITHUB_ENV | |
echo "$PREFIX" >> $GITHUB_PATH | |
- name: Install XQuartz on macOS | |
run: brew install xquartz --cask | |
- name: Show shell configuration | |
run: | | |
env | |
which cmake && cmake --version | |
which make && make --version | |
which python && python --version | |
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh | |
- name: Build | |
run: | | |
make release | |
make install | |
- name: Unit tests | |
run: | | |
make test_install | |
make XVFB="" test/unittest | |
make XVFB="" debug test/gui_mac | |
- name: Regression tests | |
run: | | |
make regression | |
CodeFormatting: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get install clang-format | |
clang-format --version | |
- name: Run formatting style check | |
run: ./.github/bin/run-clang-format.sh | |
ClangTidy: | |
runs-on: ubuntu-20.04 | |
if: ${{github.event_name == 'pull_request'}} | |
steps: | |
- name: Cancel previous | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update -qq && sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
sudo apt -qq -y install clang-tidy-12 \ | |
g++-11 tclsh default-jre cmake \ | |
uuid-dev build-essential xorg \ | |
qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtdeclarative5-dev xvfb | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: clang-tidy-codegen | |
- name: Configure shell | |
run: | | |
echo 'PATH=/usr/lib/ccache:'"$PATH" >> $GITHUB_ENV | |
echo 'RULE_MESSAGES=off' >> $GITHUB_ENV | |
- name: Prepare source | |
run: | | |
make run-cmake-release | |
ln -s build/compile_commands.json . | |
- name: Run clang tidy | |
run: | | |
./.github/bin/run-clang-tidy.sh |