Incremented patch version #9719
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: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
linux-gcc: | |
name: ubuntu-${{ matrix.mode }} | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
mode: | |
- test/batch | |
- test/unittest-d | |
- test/gui | |
- regression | |
- coverage | |
- install | |
- valgrind | |
env: | |
MODE: ${{ matrix.mode }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
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/unittest-d | |
if: matrix.mode == 'test/unittest-d' | |
run: | | |
make debug test/unittest-d | |
# make test/openfpga | |
- name: Test/batch | |
if: matrix.mode == 'test/batch' | |
run: | | |
make debug test/unittest-d | |
make release test/batch | |
# make test/openfpga | |
- name: Test/gui | |
if: matrix.mode == 'test/gui' | |
run: | | |
make debug | |
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: Valgrind cat log | |
if: matrix.mode == 'valgrind' && always() | |
run: | | |
ls -l | |
cat valgrind_gui.log | |
- 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 | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- 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: centos-${{ matrix.mode }} | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
mode: | |
- test/batch | |
- test/gui | |
env: | |
MODE: ${{ matrix.mode }} | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: pull the CentOS image | |
run: docker pull ghcr.io/os-fpga/foedag:centos7latest | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: linux-${{ matrix.mode }} | |
- name: Show shell configuration | |
uses: addnab/docker-run-action@v3 | |
with: | |
shell: bash | |
image: ghcr.io/os-fpga/foedag:centos7latest | |
run: | | |
env | |
source /opt/rh/devtoolset-11/enable | |
which gcc | |
which g++ | |
python3 -V | |
- name: Test/batch | |
if: matrix.mode == 'test/batch' | |
uses: addnab/docker-run-action@v3 | |
with: | |
shell: bash | |
image: ghcr.io/os-fpga/foedag:centos7latest | |
options: -v ${{ github.workspace }}:/home/runner | |
run: | | |
cd $HOME | |
export LD_LIBRARY_PATH=$HOME/dbuild/bin/gtkwave/lib:$HOME/third_party/openssl:$LD_LIBRARY_PATH | |
make debug test/unittest-d | |
make release test/batch | |
- name: Test/gui | |
if: matrix.mode == 'test/gui' | |
uses: addnab/docker-run-action@v3 | |
with: | |
shell: bash | |
image: ghcr.io/os-fpga/foedag:centos7latest | |
options: -v ${{ github.workspace }}:/home/runner | |
run: | | |
cd $HOME | |
export LD_LIBRARY_PATH=$HOME/dbuild/bin/gtkwave/lib:$HOME/third_party/openssl:$LD_LIBRARY_PATH | |
make debug | |
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: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup MSYS2 | |
uses: msys2/[email protected] | |
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-qt6-base-debug | |
mingw-w64-x86_64-qt6 | |
mingw-w64-x86_64-qt6-declarative-debug | |
mingw-w64-x86_64-tcl | |
mingw-w64-x86_64-zlib | |
mingw-w64-x86_64-libusb | |
python-devel | |
- 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 MONACO_EDITOR=0 VERBOSE=1 release | |
make MONACO_EDITOR=0 debug | |
make MONACO_EDITOR=0 install | |
- name: Test | |
run: | | |
make MONACO_EDITOR=0 test_install | |
make MONACO_EDITOR=0 XVFB="" test/unittest | |
make MONACO_EDITOR=0 regression | |
windows-msvc: | |
runs-on: windows-2022 | |
defaults: | |
run: | |
shell: cmd | |
steps: | |
# 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 libusb with vcpkg | |
run: | | |
C:\vcpkg\vcpkg.exe install libusb:x64-windows | |
C:\vcpkg\vcpkg.exe integrate install | |
- name: Install nasm with choco | |
run: | | |
choco install -y nasm | |
ls "C:\Program Files\NASM" | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
version: '6.2.4' | |
modules: 'qtwebengine qtwebchannel qtpositioning' | |
- run: git config --global core.autocrlf input | |
shell: bash | |
- uses: actions/checkout@v4 | |
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%;C:\Program Files\NASM;%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 | |
if: always () | |
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-12 | |
steps: | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install dependencies | |
uses: jurplel/[email protected] | |
with: | |
version: '6.2.4' | |
setup-python: false | |
modules: 'qtwebengine qtwebchannel qtpositioning' | |
- 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-12' >> $GITHUB_ENV | |
echo 'CXX=g++-12' >> $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-12 | |
steps: | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- name: Install dependencies | |
uses: jurplel/[email protected] | |
with: | |
version: '6.2.4' | |
setup-python: false | |
modules: 'qtwebengine qtwebchannel qtpositioning' | |
- uses: actions/checkout@v4 | |
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@v4 | |
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-22.04 | |
if: ${{github.event_name == 'pull_request'}} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
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 \ | |
qt6-base-dev qt6-webengine-dev qt6-webengine* libqt6webenginecore6* libegl1-mesa-dev libx11-xcb-dev libxkbcommon-dev \ | |
libusb-1.0-0-dev pkg-config | |
- 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 |