Skip to content

msvc: Simplify installation of OpenMP DLL and fix tests execution #719

msvc: Simplify installation of OpenMP DLL and fix tests execution

msvc: Simplify installation of OpenMP DLL and fix tests execution #719

name: windows-mingw64-build
on: [push, pull_request]
jobs:
mingw64:
name: ${{ matrix.config.name }}
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
config:
- name: Talipot build on Windows (mingw64 GCC)
msystem: mingw64
arch: x86_64
- name: Talipot build on Windows (mingw64 Clang)
msystem: clang64
arch: clang-x86_64
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Checkout Talipot code
uses: actions/checkout@v4
- name: Install mingw64 and Talipot build dependencies
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.config.msystem }}
update: true
install: git
base-devel
mingw-w64-${{ matrix.config.arch }}-toolchain
mingw-w64-${{ matrix.config.arch }}-openmp
mingw-w64-${{ matrix.config.arch }}-cmake
mingw-w64-${{ matrix.config.arch }}-ccache
mingw-w64-${{ matrix.config.arch }}-yajl
mingw-w64-${{ matrix.config.arch }}-zstd
mingw-w64-${{ matrix.config.arch }}-qhull
mingw-w64-${{ matrix.config.arch }}-graphviz
mingw-w64-${{ matrix.config.arch }}-libgit2
mingw-w64-${{ matrix.config.arch }}-python
mingw-w64-${{ matrix.config.arch }}-cppunit
mingw-w64-${{ matrix.config.arch }}-fontconfig
mingw-w64-${{ matrix.config.arch }}-freetype
mingw-w64-${{ matrix.config.arch }}-fribidi
mingw-w64-${{ matrix.config.arch }}-glew
mingw-w64-${{ matrix.config.arch }}-qt5
mingw-w64-${{ matrix.config.arch }}-quazip
mingw-w64-${{ matrix.config.arch }}-qtwebkit
mingw-w64-${{ matrix.config.arch }}-python-sphinx
mingw-w64-${{ matrix.config.arch }}-sip
- name: Prepare ccache timestamp
id: get-current-date
run: |
echo "date=$(date -u "+%Y-%m-%d-%H-%m-%S")" >> $GITHUB_OUTPUT
- name: Get ccache directory
id: get-cccache-dir
run: |
ccache_dir=$(ccache -sv | grep "Cache directory" | awk '{print $3}')
echo "ccache-dir=$ccache_dir" >> $GITHUB_OUTPUT
- name: Cache files
uses: actions/cache@v4
with:
path: ${{ steps.get-cccache-dir.outputs.ccache-dir }}
key: windows-${{ matrix.config.arch }}-build-ccache-${{ steps.get-current-date.outputs.date }}
restore-keys: |
windows-${{ matrix.config.arch }}-build-ccache
save-always: true
- name: Create build directory
run: mkdir build
- name: Configure Talipot build with CMake
working-directory: ./build
run: cmake -G "MSYS Makefiles"
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_NEED_RESPONSE=ON
-DCMAKE_INSTALL_PREFIX=$PWD/install
-DPython3_EXECUTABLE=/${{ matrix.config.msystem }}/bin/python3
-DTALIPOT_BUILD_TESTS=ON
-DTALIPOT_USE_CCACHE=ON ..
- name: Talipot build
working-directory: ./build
run: make -j4
- name: Install Talipot
working-directory: ./build
run: make -j4 install
- name: Run Talipot unit tests
working-directory: ./build
run: make tests
- name: Check Talipot application can be executed
working-directory: ./build/install/bin
run: ./talipot --check-application-starts --debug-plugins-load
- name: Generate Talipot NSIS installer
working-directory: ./build
run: make bundle
- name: Upload Talipot installer to GitHub Actions artifacts
uses: actions/upload-artifact@v4
with:
name: Talipot-NSIS-installer-${{ matrix.config.msystem }}
path: ./build/Talipot*.exe
- name: Upload Talipot bundle to dev-latest prerelease
if: github.ref == 'refs/tags/dev-latest'
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Talipot development build
prerelease: true
artifacts: ./build/Talipot*.exe
token: ${{ secrets.GITHUB_TOKEN }}