Skip to content

Empty-Commit

Empty-Commit #2257

Workflow file for this run

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
- production
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: ssh-agent
if: matrix.mode == 'production'
uses: webfactory/[email protected]
with:
ssh-private-key: |
${{ secrets.SSH_PRIVATE_KEY_RAPTOR_TOOLS }}
- name: Checkout code
uses: actions/checkout@v3
with:
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/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/[email protected]
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: ${{ 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: Cancel previous
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Install ssh-agent
run: |
yum install -y openssh-server openssh-clients
yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install -y https://repo.ius.io/ius-release-el7.rpm
yum install -y centos-release-scl
yum install -y devtoolset-11
yum install -y devtoolset-11-toolchain
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: Checkout code
uses: actions/checkout@v3
- name: Install dependencies and build QT
run: |
bash .github/workflows/install_centos_dependencies_build.sh
- name: Show space.
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/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: Test
if: matrix.mode == 'test'
run: |
git config --global --add safe.directory '*'
# make debug test/unittest-d
make release test/batch
# make test/gui
- name: Regression
id: reg_ok
if: matrix.mode == 'regression'
run: |
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:
- 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: Configure Git
run: git config --global core.autocrlf input
shell: bash
- name: Git pull
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Msys2
uses: msys2/setup-msys2@v2
with:
msystem: MSYS
update: true
install: gcc make cmake ninja python python-devel git diffutils autoconf mingw-w64-x86_64-libusb
release: false
env:
MSYS2_PATH_TYPE: inherit
# Install Qt
- shell: msys2 {0}
run: |
pacman --noconfirm -S zlib
pacman --noconfirm -S zlib-devel
pacman --noconfirm -S mingw-w64-x86_64-qt5
# Static version pacman --noconfirm -Syu mingw-w64-x86_64-qt5-static
find . -name qt5-config.cmake
find . -name Qt5Config.cmake
find /mingw64 -name qt5-config.cmake
find /mingw64 -name Qt5Config.cmake
find C:/msys64/ -name qt5-config.cmake
find C:/msys64/ -name Qt5Config.cmake
- name: Configure shell environment variables
run: |
export Qt5_Dir=/mingw64/lib/cmake/Qt5/
# Static version: export Qt5_Dir=/mingw64/qt5-static/lib/cmake/Qt5/
export Qt5_DIR=$Qt5_Dir
export CWD=`pwd`
echo "Qt5_DIR=$Qt5_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 "$Qt5_DIR" >> $GITHUB_PATH
- name: Show shell configuration
run: |
env
where git && git --version
where cmake && cmake --version
where make && make --version
where python && python --version
where ninja && ninja --version
where tclsh && echo 'puts [info patchlevel];exit 0' | tclsh
where $CC && $CC --version
where $CXX && $CXX --version
- name: Build
run: |
export Qt5_Dir=/mingw64/lib/cmake/Qt5/
# export Qt5_Dir=/mingw64/qt5-static/lib/cmake/Qt5/
export Qt5_DIR=$Qt5_Dir
export PATH=$Qt5_DIR:$PATH
make 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 Qt5_Dir=/mingw64/lib/cmake/Qt5/
# export Qt5_Dir=/mingw64/qt5-static/lib/cmake/Qt5/
export Qt5_DIR=$Qt5_Dir
export PATH=$Qt5_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:
- 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 libusb with vcpkg
run: |
C:\vcpkg\vcpkg.exe install libusb:x64-windows
C:\vcpkg\vcpkg.exe integrate install
- name: Install Qt
uses: jurplel/[email protected]
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v3
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%;%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/[email protected]
with:
name: raptor_gui-windows-msvc
path: ${{ github.workspace }}/install
- name: Archive regression artifacts
if: always()
uses: actions/[email protected]
with:
name: raptor_gui-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:
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: |
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_mac
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:
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_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@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:
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 \
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