From 6a4810157400b2879239df9fdaa7d31158825411 Mon Sep 17 00:00:00 2001 From: Liam Keegan Date: Fri, 12 Apr 2024 15:40:40 +0200 Subject: [PATCH] use ccache, upload to release from each job, remove 32-bit mingw job" --- .github/workflows/release.yml | 104 +++++++++------------------------- .pre-commit-config.yaml | 2 +- README.md | 1 - build.sh | 4 ++ 4 files changed, 33 insertions(+), 78 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 297f569..52ad3fa 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,8 @@ env: jobs: build: runs-on: ${{ matrix.os }} + permissions: + contents: write strategy: fail-fast: false matrix: @@ -29,95 +31,45 @@ jobs: steps: - uses: spatial-model-editor/setup-ci@v1 - uses: actions/checkout@v4 - - name: Build script - run: ./build.sh - - uses: actions/upload-artifact@v4 - with: - name: artifacts-${{ matrix.os }} - path: ./artefacts/* - retention-days: 3 - - win32-mingw: - name: Windows 32-bit Mingw - runs-on: windows-2022 - env: - INSTALL_PREFIX: "/c/smelibs" - SUDO_CMD: "" - CONFIGURE_EXTRAS: "-DQT_QMAKE_TARGET_MKSPEC=win32-g++" - OS: "win32-mingw" - defaults: - run: - shell: msys2 {0} - steps: - - uses: actions/checkout@v4 - - uses: msys2/setup-msys2@v2 - with: - msystem: MINGW32 - update: true - install: mingw-w64-i686-gcc mingw-w64-i686-cmake mingw-w64-i686-ninja git - - name: Build script - run: ./build.sh - - uses: actions/upload-artifact@v4 - with: - name: artifacts-win32-mingw - path: ./artefacts/* - - win64-msvc: - name: Windows 64-bit MSVC - runs-on: windows-2022 - env: - INSTALL_PREFIX: 'C:\smelibs' - OS: "win64-msvc" - steps: - - uses: actions/checkout@v4 - - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: amd64 - toolset: 14.0 - - name: Build script - run: ./build.ps1 - - uses: actions/upload-artifact@v4 + - run: ./build.sh + - name: Upload binaries to release if commit is tagged + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 with: - name: artifacts-win64-msvc - path: ./artefacts/* + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ./artefacts/* + tag: ${{ github.ref }} + overwrite: true + file_glob: true - win32-msvc: - name: Windows 32-bit MSVC + msvc: runs-on: windows-2022 + permissions: + contents: write + strategy: + fail-fast: false + matrix: + include: + - os: "win64-msvc" + arch: "amd64" + - os: "win32-msvc" + arch: "amd64_x86" env: INSTALL_PREFIX: 'C:\smelibs' - OS: "win32-msvc" + OS: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: ilammy/msvc-dev-cmd@v1 with: - arch: amd64_x86 + arch: ${{ matrix.arch }} toolset: 14.0 - - name: Build script - run: ./build.ps1 - - uses: actions/upload-artifact@v4 - with: - name: artifacts-win32-msvc - path: ./artefacts/* - - release: - needs: [build, win32-mingw, win64-msvc, win32-msvc] - runs-on: ubuntu-latest - permissions: - contents: write - # upload binaries to github release if commit is tagged - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') - steps: - - uses: actions/download-artifact@v4 - with: - pattern: artifacts-* - merge-multiple: true - path: binaries - - name: Upload binaries to release + - run: ./build.ps1 + - name: Upload binaries to release if commit is tagged + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: binaries/* + file: ./artefacts/* tag: ${{ github.ref }} overwrite: true file_glob: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index beb2c08..28fabec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v4.6.0 hooks: - id: check-yaml - id: end-of-file-fixer diff --git a/README.md b/README.md index b25fc37..946e8a3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ Get the latest versions here: - linux (clang 18 / Ubuntu 20.04): [sme_deps_qt_linux.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_linux.tgz) - osx (Xcode 14.3 / macOS 13 / MACOSX_DEPLOYMENT_TARGET 11): [sme_deps_qt_osx.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_osx.tgz) -- win32-mingw (mingw-w64-i686-gcc 13): [sme_deps_qt_win32-mingw.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_win32-mingw.tgz) - win64-mingw (mingw-w64-x86_64-gcc 13): [sme_deps_qt_win64-mingw.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_win64-mingw.tgz) - win32-msvc (VC++ 2015 Toolset): [sme_deps_qt_win32-msvc.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_win32-msvc.tgz) - win64-msvc (VC++ 2015 Toolset): [sme_deps_qt_win64-msvc.tgz](https://github.com/spatial-model-editor/sme_deps_qt/releases/latest/download/sme_deps_qt_win64-msvc.tgz) diff --git a/build.sh b/build.sh index 7cb319f..698f645 100755 --- a/build.sh +++ b/build.sh @@ -26,6 +26,7 @@ cmake -G "Ninja" .. \ -DCMAKE_OSX_DEPLOYMENT_TARGET="$MACOSX_DEPLOYMENT_TARGET" \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=OFF \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_C_FLAGS="-fpic -fvisibility=hidden" \ -DCMAKE_CXX_FLAGS="-fpic -fvisibility=hidden" \ -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" @@ -57,6 +58,7 @@ cmake ../qt5/qtbase -G "Ninja" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DCMAKE_MESSAGE_LOG_LEVEL=STATUS \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DFEATURE_system_doubleconversion=OFF \ -DFEATURE_system_harfbuzz=OFF \ -DFEATURE_system_jpeg=OFF \ @@ -81,6 +83,8 @@ $SUDO_CMD ninja install cd ../.. +ccache --show-stats + $INSTALL_PREFIX/bin/qmake -v # make tarball of installation