Skip to content

Update main.yml to use GCC 12 as GCC 11 is no longer available on mac… #3767

Update main.yml to use GCC 12 as GCC 11 is no longer available on mac…

Update main.yml to use GCC 12 as GCC 11 is no longer available on mac… #3767

Workflow file for this run

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-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
mode:
- test
- regression
- coverage
- install
- valgrind
- production
env:
MODE: ${{ matrix.mode }}
steps:
- uses: actions/setup-python@v5.0.0
with:
python-version: 3.8
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
bash .github/workflows/install_ubuntu_dependencies_build.sh
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
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/raptor_gui-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 VERBOSE=1
# make test/unittest-d
# make release test/batch
# make test/gui
- name: Regression
if: matrix.mode == 'regression'
run: |
make regression
- name: Coverage
if: matrix.mode == 'coverage'
run: |
make debug coverage-build/raptor_gui.coverage
- name: Valgrind
if: matrix.mode == 'valgrind'
run: |
make debug
make test/valgrind
- 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: Production
if: matrix.mode == 'production'
run: |
make release PRODUCTION_BUILD=ON
./build/bin/raptor --version
- name: Archive regression artifacts
if: matrix.mode == 'regression' && always()
uses: actions/upload-artifact@v3.1.0
with:
name: raptor_gui-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: centos7-${{ matrix.mode }}
runs-on: ubuntu-latest
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
mode:
- test
env:
MODE: ${{ matrix.mode }}
steps:
- name: Log in to the Container registry
uses: docker/login-action@v3.0.0
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: Install minimum dependencies
run: |
sudo apt update && sudo apt upgrade -y
sudo apt install -y qt6-base-dev qt6-webengine-dev qt6-webengine* libqt6webenginecore6* && sudo apt clean all
sudo apt install -y libegl1-mesa-dev libx11-xcb-dev libxkbcommon-dev libhwloc-dev libusb-1.0-0-dev && sudo apt clean all
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list http://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
sudo apt update
sudo apt install -y vulkan-sdk
sudo apt-get autoremove -y >/dev/null 2>&1
sudo apt-get autoclean -y >/dev/null 2>&1
df -h
- name: Checkout code
uses: actions/checkout@v4
- name: Checkout submodules
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
make run-cmake-release
- 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
if: matrix.mode == 'test'
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
# make debug test/unittest-d
make clean && make release test/batch
# make test/gui
- name: Regression
id: reg_ok
if: matrix.mode == 'regression'
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
make regression
# Reference: https://github.com/eyllanesc/69108420/blob/main/.github/workflows/test.yml
msys2-gcc:
runs-on: windows-2022
defaults:
run:
shell: msys2 {0}
steps:
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2.0.1
with:
cmake-version: '3.21.3'
- name: Configure Git
run: git config --global core.autocrlf input
shell: bash
- name: Git pull
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Msys2
uses: msys2/setup-msys2@v2.22.0
with:
msystem: MINGW64
path-type: minimal
update: true
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
release: false
env:
MSYS2_PATH_TYPE: inherit
- shell: msys2 {0}
run: |
pacman --noconfirm -S zlib
pacman --noconfirm -S zlib-devel
pacman --noconfirm -S mingw-w64-x86_64-qt6
# Static version pacman --noconfirm -Syu mingw-w64-x86_64-qt6-static
find . -name qt6-config.cmake
find . -name Qt6Config.cmake
find /mingw64 -name qt6-config.cmake
find /mingw64 -name Qt6Config.cmake
find C:/msys64/ -name qt6-config.cmake
find C:/msys64/ -name Qt6Config.cmake
- name: Configure shell environment variables
run: |
export Qt6_Dir=/mingw64/lib/cmake/Qt6/
# Static version: export Qt6_Dir=/mingw64/qt6-static/lib/cmake/Qt6/
export Qt6_DIR=$Qt6_Dir
export CWD=`pwd`
echo "Qt6_DIR=$Qt6_DIR" >> $GITHUB_ENV
echo 'CMAKE_GENERATOR=Ninja' >> $GITHUB_ENV
echo 'CC=gcc' >> $GITHUB_ENV
echo 'CXX=g++' >> $GITHUB_ENV
echo 'NO_TCMALLOC=On' >> $GITHUB_ENV
echo "PREFIX=$CWD/install" >> $GITHUB_ENV
echo "$Qt6_DIR" >> $GITHUB_PATH
- 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: |
export Qt6_Dir=/mingw64/lib/cmake/Qt6/
# export Qt6_Dir=/mingw64/qt6-static/lib/cmake/Qt6/
export Qt6_DIR=$Qt6_Dir
export PATH=$Qt6_DIR:$PATH
make MONACO_EDITOR=0 lib-only
# There are Qt linkage issues, so build only the libs for now
# make VERBOSE=1 release
# make debug
# make install
- name: Test
run: |
export Qt6_Dir=/mingw64/lib/cmake/Qt6/
# export Qt6_Dir=/mingw64/qt5-static/lib/cmake/Qt6/
export Qt6_DIR=$Qt6_Dir
export PATH=$Qt6_DIR:$PATH
# There Qt are linkage issues, so build only the libs for now
# make test_install
# make test/unittest
# make 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/actions-setup-cmake@v2.0.1
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/setup-python@v5.0.0
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/install-qt-action@v3.0.0
with:
version: '6.2.4'
modules: 'qtwebengine qtwebchannel qtpositioning'
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v4
with:
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 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/upload-artifact@v3.1.0
with:
name: raptor_gui-windows-msvc
path: ${{ github.workspace }}/install
- name: Archive regression artifacts
if: always()
uses: actions/upload-artifact@v3.1.0
with:
name: raptor_gui-windows-msvc-regression
path: |
${{ github.workspace }}/build/test/
${{ github.workspace }}/build/tests/
macos-gcc:
runs-on: macos-12
steps:
- uses: actions/setup-python@v5.0.0
with:
python-version: 3.8
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
uses: jurplel/install-qt-action@v3.0.0
with:
version: '6.2.4'
setup-python: false
modules: 'qtwebengine qtwebchannel qtpositioning'
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: macos-gcc
- name: Configure shell
run: |
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_mac
# make test_install
- name: Regression tests
run: |
make regression
macos-clang:
runs-on: macos-12
steps:
- uses: actions/setup-python@v5.0.0
with:
python-version: 3.8
- name: Install dependencies
uses: jurplel/install-qt-action@v3.0.0
with:
version: '6.2.4'
setup-python: false
modules: 'qtwebengine qtwebchannel qtpositioning'
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
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_mac
#make test_install
make 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:
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* libegl1-mesa-dev libx11-xcb-dev libxkbcommon-dev \
libusb-1.0-0-dev pkg-config
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
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