msvc: Simplify installation of OpenMP DLL and fix tests execution #719
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: 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 }} |