From 1e253de2328b06a04342cfb8928e5f11d2803985 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 16:49:41 +0200 Subject: [PATCH 01/30] Update desktop-build.yml --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 74f905351..1a3f71a7c 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -337,7 +337,7 @@ jobs: qt_modules: qtimageformats qtmultimedia qtwebsockets type: Release - name: ${{ matrix.os }} ${{ matrix.target }}${{ matrix.soc == 'Intel' && ' Intel' || '' }}${{ matrix.type == 'Debug' && ' Debug' || '' }} + name: ${{ matrix.os }} ${{ matrix.target }}${{ case(matrix.soc == 'Intel', ' Intel', '') }}${{ case(matrix.type == 'Debug', ' Debug', '') }} needs: configure runs-on: ${{ matrix.runner }} timeout-minutes: 100 From 5d91a340ddc329a6fc34ad5074c48a9110488afc Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 17:33:47 +0200 Subject: [PATCH 02/30] CAPS --- .github/workflows/desktop-build.yml | 44 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 1a3f71a7c..1f3b57b50 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -79,19 +79,19 @@ jobs: shell: bash env: GH_TOKEN: ${{ github.token }} - tag_name: ${{ steps.configure.outputs.tag }} - target: ${{ steps.configure.outputs.sha }} - release_name: ${{ steps.prepare.outputs.title }} - body_path: ${{ steps.prepare.outputs.body_path }} - prerelease: ${{ steps.prepare.outputs.is_beta }} + TAG_NAME: ${{ steps.configure.outputs.tag }} + TARGET: ${{ steps.configure.outputs.sha }} + RELEASE_NAME: ${{ steps.prepare.outputs.title }} + BODY_PATH: ${{ steps.prepare.outputs.body_path }} + PRERELEASE: ${{ steps.prepare.outputs.is_beta }} run: | args=() - [[ $prerelease == yes ]] && args+=(--prerelease) + [[ $PRERELEASE == yes ]] && args+=(--prerelease) - gh release create "$tag_name" --verify-tag --draft "${args[@]}" \ - --target "$target" \ - --title "$release_name" \ - --notes-file "$body_path" + gh release create "$TAG_NAME" --verify-tag --draft "${args[@]}" \ + --target "$TARGET" \ + --title "$RELEASE_NAME" \ + --notes-file "$BODY_PATH" build-linux: strategy: @@ -188,18 +188,18 @@ jobs: shell: bash env: SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}' - package: '${{ matrix.package }}' - server_only: '${{ matrix.server_only }}' + PACKAGE: '${{ matrix.package }}' + SERVER_ONLY: '${{ matrix.server_only }}' run: | source .ci/docker.sh args=() - [[ $server_only == yes ]] && args+=(--no-client) + [[ $SERVER_ONLY == yes ]] && args+=(--no-client) [[ $GITHUB_REF == "refs/heads/master" ]] && args+=(--evict-ccache "$CCACHE_EVICTION_AGE") args+=(--ccache "$CCACHE_SIZE") args+=(--cmake-generator "$CMAKE_GENERATOR") args+=(--suffix "$SUFFIX") - RUN --server --release --package "$package" "${args[@]}" + RUN --server --release --package "$PACKAGE" "${args[@]}" # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 - name: "Delete remote compiler cache (ccache)" @@ -234,11 +234,11 @@ jobs: if: matrix.package != 'skip' && needs.configure.outputs.tag != null shell: bash env: - asset_name: ${{ steps.build.outputs.fullname }} - asset_path: ${{ steps.build.outputs.path }} + ASSET_NAME: ${{ steps.build.outputs.fullname }} + ASSET_PATH: ${{ steps.build.outputs.path }} GH_TOKEN: ${{ github.token }} - tag_name: ${{ needs.configure.outputs.tag }} - run: gh release upload "$tag_name" "$asset_path#$asset_name" + TAG_NAME: ${{ needs.configure.outputs.tag }} + run: gh release upload "$TAG_NAME" "$ASSET_PATH#$ASSET_NAME" - name: "Attest binary provenance" id: attestation @@ -550,11 +550,11 @@ jobs: id: upload_release shell: bash env: - asset_name: ${{ steps.build.outputs.fullname }} - asset_path: ${{ steps.build.outputs.path }} + ASSET_NAME: ${{ steps.build.outputs.fullname }} + ASSET_PATH: ${{ steps.build.outputs.path }} GH_TOKEN: ${{ github.token }} - tag_name: ${{ needs.configure.outputs.tag }} - run: gh release upload "$tag_name" "$asset_path#$asset_name" + TAG_NAME: ${{ needs.configure.outputs.tag }} + run: gh release upload "$TAG_NAME" "$ASSET_PATH#$ASSET_NAME" - name: "Attest binary provenance" if: steps.upload_release.outcome == 'success' From dcb9ed0044708605a9e924c8c435ee4390681d88 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 18:06:48 +0200 Subject: [PATCH 03/30] boolean --- .ci/prep_release.sh | 6 ++--- .github/workflows/desktop-build.yml | 38 ++++++++++++++--------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.ci/prep_release.sh b/.ci/prep_release.sh index 7f4f7d961..8e830bb23 100755 --- a/.ci/prep_release.sh +++ b/.ci/prep_release.sh @@ -23,18 +23,18 @@ fi # create title if [[ $TAG =~ $beta_regex ]]; then - echo "is_beta=yes" >>"$GITHUB_OUTPUT" + echo "is_beta=true" >>"$GITHUB_OUTPUT" title="$TAG" echo "creating beta release '$title'" elif [[ ! $(cat CMakeLists.txt) =~ $name_regex ]]; then echo "::error file=$0::could not find releasename in CMakeLists.txt" exit 1 else - echo "is_beta=no" >>"$GITHUB_OUTPUT" + echo "is_beta=false" >>"$GITHUB_OUTPUT" name="${BASH_REMATCH[1]}" version="${TAG##*-}" title="Cockatrice $version: $name" - no_beta=1 + no_beta=true echo "friendly_name=$name" >>"$GITHUB_OUTPUT" echo "creating full release '$title'" fi diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 1f3b57b50..8b4839119 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -86,7 +86,7 @@ jobs: PRERELEASE: ${{ steps.prepare.outputs.is_beta }} run: | args=() - [[ $PRERELEASE == yes ]] && args+=(--prerelease) + [[ "$PRERELEASE" == "true" ]] && args+=(--prerelease) gh release create "$TAG_NAME" --verify-tag --draft "${args[@]}" \ --target "$TARGET" \ @@ -101,14 +101,14 @@ jobs: include: - distro: Arch - allow-failure: yes + allow-failure: true package: skip # We are packaged in Arch already - distro: Servatrice_Debian version: 12 package: DEB - server_only: yes + server_only: true test: skip - distro: Debian @@ -147,7 +147,7 @@ jobs: name: ${{ matrix.distro }} ${{ matrix.version }} needs: configure runs-on: ubuntu-latest - continue-on-error: ${{ matrix.allow-failure == 'yes' }} + continue-on-error: ${{ matrix.allow-failure == 'true' }} timeout-minutes: 70 env: CACHE: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }} # directory for caching docker image and ccache @@ -193,8 +193,8 @@ jobs: run: | source .ci/docker.sh args=() - [[ $SERVER_ONLY == yes ]] && args+=(--no-client) - [[ $GITHUB_REF == "refs/heads/master" ]] && args+=(--evict-ccache "$CCACHE_EVICTION_AGE") + [[ "$SERVER_ONLY" == "true" ]] && args+=(--no-client) + [[ "$GITHUB_REF" == "refs/heads/master" ]] && args+=(--evict-ccache "$CCACHE_EVICTION_AGE") args+=(--ccache "$CCACHE_SIZE") args+=(--cmake-generator "$CMAKE_GENERATOR") args+=(--suffix "$SUFFIX") @@ -267,7 +267,7 @@ jobs: ccache_eviction_age: 7d cmake_generator: Ninja - make_package: 1 + make_package: true override_target: 13 package_suffix: "-macOS13_Intel" qt_version: 6.11.0 @@ -275,7 +275,7 @@ jobs: qt_modules: qtimageformats qtmultimedia qtwebsockets soc: Intel type: Release - use_ccache: 1 + use_ccache: true xcode: "16.4" - os: macOS @@ -284,14 +284,14 @@ jobs: ccache_eviction_age: 7d cmake_generator: Ninja - make_package: 1 + make_package: true package_suffix: "-macOS14" qt_version: 6.11.0 qt_arch: clang_64 qt_modules: qtimageformats qtmultimedia qtwebsockets soc: Apple type: Release - use_ccache: 1 + use_ccache: true xcode: "15.4" - os: macOS @@ -300,14 +300,14 @@ jobs: ccache_eviction_age: 7d cmake_generator: Ninja - make_package: 1 + make_package: true package_suffix: "-macOS15" qt_version: 6.11.0 qt_arch: clang_64 qt_modules: qtimageformats qtmultimedia qtwebsockets soc: Apple type: Release - use_ccache: 1 + use_ccache: true xcode: "16.4" - os: macOS @@ -321,7 +321,7 @@ jobs: qt_modules: qtimageformats qtmultimedia qtwebsockets soc: Apple type: Debug - use_ccache: 1 + use_ccache: true xcode: "16.4" - os: Windows @@ -330,7 +330,7 @@ jobs: cmake_generator: "Visual Studio 18 2026" cmake_generator_platform: x64 - make_package: 1 + make_package: true package_suffix: "-Win10" qt_version: 6.11.0 qt_arch: win64_msvc2022_64 @@ -359,11 +359,11 @@ jobs: msbuild-architecture: x64 - name: "[macOS] Setup ccache" - if: matrix.os == 'macOS' && matrix.use_ccache == 1 + if: matrix.os == 'macOS' && matrix.use_ccache == 'true' run: brew install ccache - name: "[macOS] Restore compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 1 + if: matrix.os == 'macOS' && matrix.use_ccache == 'true' id: ccache_restore uses: actions/cache/restore@v5 env: @@ -461,7 +461,7 @@ jobs: # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 - name: "[macOS] Delete remote compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 1 && github.ref == 'refs/heads/master' && steps.ccache_restore.outputs.cache-hit + if: matrix.os == 'macOS' && matrix.use_ccache == 'true' && github.ref == 'refs/heads/master' && steps.ccache_restore.outputs.cache-hit continue-on-error: true env: CACHE_PRIMARY_KEY: ${{ steps.ccache_restore.outputs.cache-primary-key }} @@ -472,7 +472,7 @@ jobs: fi - name: "[macOS] Save updated compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 1 && github.ref == 'refs/heads/master' + if: matrix.os == 'macOS' && matrix.use_ccache == 'true' && github.ref == 'refs/heads/master' uses: actions/cache/save@v5 with: key: ${{ steps.ccache_restore.outputs.cache-primary-key }} @@ -546,7 +546,7 @@ jobs: build/servatrice/Release/*.pdb - name: "Upload to release" - if: needs.configure.outputs.tag != null && matrix.make_package == '1' + if: needs.configure.outputs.tag != null && matrix.make_package == 'true' id: upload_release shell: bash env: From 6ba561a9cb40b99dcd3f682757d1b6dcbbb17173 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 18:08:59 +0200 Subject: [PATCH 04/30] sorting --- .github/workflows/desktop-build.yml | 22 +++++++++++----------- .github/workflows/docker-release.yml | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 8b4839119..3c55adb99 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -7,6 +7,17 @@ permissions: id-token: write # needed for signing certificate in attestation on: + pull_request: + paths: + - '*/**' # matches all files not in root + - '!**.md' + - '!.github/**' + - '!.tx/**' + - '!doc/**' + - '.github/workflows/desktop-build.yml' + - 'CMakeLists.txt' + - 'vcpkg.json' + - 'vcpkg' # needed to match submodule bumps (gitlink) push: branches: - master @@ -22,17 +33,6 @@ on: - 'vcpkg' # needed to match submodule bumps (gitlink) tags: - '*' - pull_request: - paths: - - '*/**' # matches all files not in root - - '!**.md' - - '!.github/**' - - '!.tx/**' - - '!doc/**' - - '.github/workflows/desktop-build.yml' - - 'CMakeLists.txt' - - 'vcpkg.json' - - 'vcpkg' # needed to match submodule bumps (gitlink) # Cancel earlier, unfinished runs of this workflow on the same branch (unless on release) concurrency: diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index b479322d0..9c65e345b 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -5,15 +5,15 @@ permissions: packages: write on: - push: - branches: - - master pull_request: branches: - master paths: - '.github/workflows/docker-release.yml' - 'Dockerfile' + push: + branches: + - master release: types: - released # publishing of stable releases From 201beffb63260095fc987d7633c8c4b881112758 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 18:28:45 +0200 Subject: [PATCH 05/30] 1 --> true https://learn.microsoft.com/en-us/vcpkg/users/config-environment#vcpkg_disable_metrics --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 3c55adb99..0580fa783 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -456,7 +456,7 @@ jobs: TARGET_MACOS_VERSION: ${{ matrix.override_target }} USE_CCACHE: ${{ matrix.use_ccache }} VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite' - VCPKG_DISABLE_METRICS: 1 + VCPKG_DISABLE_METRICS: true run: .ci/compile.sh --server --test --vcpkg # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 From f90a3411eee6782391b9de3cc68fd824b48daae3 Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 18:41:28 +0200 Subject: [PATCH 06/30] fix comparisons --- .github/workflows/desktop-build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 0580fa783..187440b41 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -147,7 +147,7 @@ jobs: name: ${{ matrix.distro }} ${{ matrix.version }} needs: configure runs-on: ubuntu-latest - continue-on-error: ${{ matrix.allow-failure == 'true' }} + continue-on-error: ${{ matrix.allow-failure == true }} timeout-minutes: 70 env: CACHE: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }} # directory for caching docker image and ccache @@ -359,11 +359,11 @@ jobs: msbuild-architecture: x64 - name: "[macOS] Setup ccache" - if: matrix.os == 'macOS' && matrix.use_ccache == 'true' + if: matrix.os == 'macOS' && matrix.use_ccache == true run: brew install ccache - name: "[macOS] Restore compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 'true' + if: matrix.os == 'macOS' && matrix.use_ccache == true id: ccache_restore uses: actions/cache/restore@v5 env: @@ -461,7 +461,7 @@ jobs: # Delete used cache to emulate a ccache update. See https://github.com/actions/cache/issues/342 - name: "[macOS] Delete remote compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 'true' && github.ref == 'refs/heads/master' && steps.ccache_restore.outputs.cache-hit + if: matrix.os == 'macOS' && matrix.use_ccache == true && github.ref == 'refs/heads/master' && steps.ccache_restore.outputs.cache-hit continue-on-error: true env: CACHE_PRIMARY_KEY: ${{ steps.ccache_restore.outputs.cache-primary-key }} @@ -472,7 +472,7 @@ jobs: fi - name: "[macOS] Save updated compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == 'true' && github.ref == 'refs/heads/master' + if: matrix.os == 'macOS' && matrix.use_ccache == true && github.ref == 'refs/heads/master' uses: actions/cache/save@v5 with: key: ${{ steps.ccache_restore.outputs.cache-primary-key }} @@ -546,7 +546,7 @@ jobs: build/servatrice/Release/*.pdb - name: "Upload to release" - if: needs.configure.outputs.tag != null && matrix.make_package == 'true' + if: needs.configure.outputs.tag != null && matrix.make_package == true id: upload_release shell: bash env: From a48b46416ebf5656da647900b78a6234acb1e33a Mon Sep 17 00:00:00 2001 From: tooomm Date: Sun, 21 Jun 2026 19:32:20 +0200 Subject: [PATCH 07/30] skip --> false --- .github/workflows/desktop-build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 187440b41..ac85522d2 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -102,20 +102,20 @@ jobs: - distro: Arch allow-failure: true - package: skip # We are packaged in Arch already + package: false # We are packaged in Arch already - distro: Servatrice_Debian version: 12 package: DEB server_only: true - test: skip + test: false - distro: Debian version: 12 package: DEB - test: skip # Running tests on all distros is superfluous + test: false # Running tests on all distros is superfluous - distro: Debian version: 13 @@ -126,7 +126,7 @@ jobs: version: 43 package: RPM - test: skip # Running tests on all distros is superfluous + test: false # Running tests on all distros is superfluous - distro: Fedora version: 44 @@ -137,7 +137,7 @@ jobs: version: 24.04 package: DEB - test: skip # Running tests on all distros is superfluous + test: false # Running tests on all distros is superfluous - distro: Ubuntu version: 26.04 @@ -175,7 +175,7 @@ jobs: run: source .ci/docker.sh --build - name: "Build debug and test" - if: matrix.test != 'skip' + if: matrix.test != false shell: bash run: | source .ci/docker.sh @@ -184,7 +184,7 @@ jobs: - name: "Build release package" id: build - if: matrix.package != 'skip' + if: matrix.package != false shell: bash env: SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}' @@ -222,7 +222,7 @@ jobs: - name: "Upload artifact" id: upload_artifact - if: matrix.package != 'skip' + if: matrix.package != false uses: actions/upload-artifact@v7 with: archive: false @@ -231,7 +231,7 @@ jobs: - name: "Upload to release" id: upload_release - if: matrix.package != 'skip' && needs.configure.outputs.tag != null + if: matrix.package != false && needs.configure.outputs.tag != null shell: bash env: ASSET_NAME: ${{ steps.build.outputs.fullname }} From 25ae0634340beaa146f675ecd4434c51dcb0eaf6 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 29 Jun 2026 12:31:53 +0200 Subject: [PATCH 08/30] rename --- .github/workflows/docker-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 9c65e345b..3178191f7 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -1,4 +1,4 @@ -name: Build Docker Image +name: Build Docker permissions: contents: read From fb74e8fd97c1e9c5b6434eafef01dcbf10f46775 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 29 Jun 2026 13:12:27 +0200 Subject: [PATCH 09/30] whitespace --- .github/workflows/docker-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 3178191f7..45d88ae6b 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -28,7 +28,7 @@ jobs: name: amd64 & arm64 if: ${{ github.repository_owner == 'Cockatrice' }} runs-on: ubuntu-latest - + steps: - name: "Checkout" uses: actions/checkout@v7 From b768c27c4c6e7d82a539f5bea0684881d6be1f19 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 29 Jun 2026 13:32:03 +0200 Subject: [PATCH 10/30] Harmonize beta and assign true/false value, Capitalize print messages --- .ci/prep_release.sh | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/.ci/prep_release.sh b/.ci/prep_release.sh index 8e830bb23..626f4c968 100755 --- a/.ci/prep_release.sh +++ b/.ci/prep_release.sh @@ -7,7 +7,7 @@ # adds output to GITHUB_OUTPUT template_path=".ci/release_template.md" body_path="/tmp/release.md" -beta_regex='beta' +beta_regex='-beta' name_regex='set\(GIT_TAG_RELEASENAME "([[:print:]]+)")' whitespace='^\s*$' @@ -23,28 +23,29 @@ fi # create title if [[ $TAG =~ $beta_regex ]]; then - echo "is_beta=true" >>"$GITHUB_OUTPUT" + beta=true + echo "beta=$beta" >>"$GITHUB_OUTPUT" title="$TAG" - echo "creating beta release '$title'" + echo "Creating beta release '$title'" elif [[ ! $(cat CMakeLists.txt) =~ $name_regex ]]; then - echo "::error file=$0::could not find releasename in CMakeLists.txt" + echo "::error file=$0::Could not find releasename in CMakeLists.txt" exit 1 else - echo "is_beta=false" >>"$GITHUB_OUTPUT" + beta=false + echo "beta=$beta" >>"$GITHUB_OUTPUT" name="${BASH_REMATCH[1]}" version="${TAG##*-}" title="Cockatrice $version: $name" - no_beta=true echo "friendly_name=$name" >>"$GITHUB_OUTPUT" - echo "creating full release '$title'" + echo "Creating full release '$title'" fi echo "title=$title" >>"$GITHUB_OUTPUT" # add release notes template -if [[ $no_beta ]]; then +if [[ $beta == "false" ]]; then body="$(cat "$template_path")" if [[ ! $body ]]; then - echo "::warning file=$0::could not find release template" + echo "::warning file=$0::Could not find release template" fi body="${body//--REPLACE-WITH-RELEASE-TITLE--/$title}" else @@ -64,13 +65,13 @@ before="${all_tags%% "$TAG"*}" # strip line with current tag an all lines after it # note the extra newlines are needed to always have a last line if [[ $all_tags == "$before" ]]; then - echo "::warning file=$0::could not find current tag" + echo "::warning file=$0::Could not find current tag" else while previous="${before##* }" # get the last line # skip this tag if this is a full release and it's a beta or if empty - [[ $no_beta && $previous =~ $beta_regex || ! $previous ]] + [[ $beta == "false" && $previous =~ $beta_regex || ! $previous ]] do beta_list+=" $previous" # add to list of skipped betas next_before="${before% @@ -85,7 +86,7 @@ else if generated_list="$(git log "$previous..$TAG" --pretty="- %s")"; then count="$(git rev-list --count "$previous..$TAG")" [[ $previous =~ $beta_regex ]] && previousreleasetype="beta release" || previousreleasetype="full release" - echo "adding list of commits to release notes:" + echo "Adding list of commits to release notes:" echo "'$previous' to '$TAG' ($count commits)" # --> is the markdown comment escape sequence, emojis are way better generated_list="${generated_list//-->/→}" @@ -98,15 +99,15 @@ else if [[ $beta_list =~ $whitespace ]]; then beta_list="-n there are no betas to delete!" else - echo "the following betas should be deleted after publishing:" + echo "The following betas should be deleted after publishing:" echo "$beta_list" fi body="${body//--REPLACE-WITH-BETA-LIST--/$beta_list}" else - echo "::warning file=$0::failed to produce git log" + echo "::warning file=$0::Failed to produce git log" fi else - echo "::warning file=$0::could not find previous tag" + echo "::warning file=$0::Could not find previous tag" fi fi From 05621b0c4478e16ca0d3470bc3fe050284e34250 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 29 Jun 2026 13:34:25 +0200 Subject: [PATCH 11/30] match new script logic --- .github/workflows/desktop-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 91f588870..f41e6710c 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -83,7 +83,7 @@ jobs: TARGET: ${{ steps.configure.outputs.sha }} RELEASE_NAME: ${{ steps.prepare.outputs.title }} BODY_PATH: ${{ steps.prepare.outputs.body_path }} - PRERELEASE: ${{ steps.prepare.outputs.is_beta }} + PRERELEASE: ${{ steps.prepare.outputs.beta }} run: | args=() [[ "$PRERELEASE" == "true" ]] && args+=(--prerelease) From d7220bb9ad52bacfbdf22e839375379d323fb7b5 Mon Sep 17 00:00:00 2001 From: tooomm Date: Mon, 29 Jun 2026 19:42:51 +0200 Subject: [PATCH 12/30] linux updates --- .github/workflows/desktop-build.yml | 32 +++++++++++++---------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index f41e6710c..91cd91bdf 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -78,12 +78,12 @@ jobs: id: create_release shell: bash env: + BODY_PATH: ${{ steps.prepare.outputs.body_path }} GH_TOKEN: ${{ github.token }} + PRERELEASE: ${{ steps.prepare.outputs.beta }} + RELEASE_NAME: ${{ steps.prepare.outputs.title }} TAG_NAME: ${{ steps.configure.outputs.tag }} TARGET: ${{ steps.configure.outputs.sha }} - RELEASE_NAME: ${{ steps.prepare.outputs.title }} - BODY_PATH: ${{ steps.prepare.outputs.body_path }} - PRERELEASE: ${{ steps.prepare.outputs.beta }} run: | args=() [[ "$PRERELEASE" == "true" ]] && args+=(--prerelease) @@ -102,47 +102,46 @@ jobs: - distro: Arch allow-failure: true - package: false # We are packaged in Arch already + test: true # run debug build and tests - distro: Servatrice_Debian version: 12 package: DEB server_only: true - test: false - distro: Debian version: 12 package: DEB - test: false # Running tests on all distros is superfluous - distro: Debian version: 13 package: DEB + test: true # run debug build and tests on newest distro version - distro: Fedora version: 43 package: RPM - test: false # Running tests on all distros is superfluous - distro: Fedora version: 44 package: RPM + test: true # run debug build and tests on newest distro version - distro: Ubuntu version: 24.04 package: DEB - test: false # Running tests on all distros is superfluous - distro: Ubuntu version: 26.04 package: DEB + test: true # run debug build and tests on newest distro version name: ${{ matrix.distro }} ${{ matrix.version }} needs: configure @@ -150,7 +149,7 @@ jobs: continue-on-error: ${{ matrix.allow-failure == true }} timeout-minutes: 70 env: - CACHE: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }} # directory for caching docker image and ccache + CACHE_DIR: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }} # directory for caching docker image and ccache CCACHE_EVICTION_AGE: 7d CCACHE_SIZE: 550M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CMAKE_GENERATOR: 'Ninja' @@ -167,7 +166,7 @@ jobs: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} with: key: ccache-${{ matrix.distro }}${{ matrix.version }}-${{ env.BRANCH_NAME }} - path: ${{ env.CACHE }} + path: ${{ env.CACHE_DIR }} restore-keys: ccache-${{ matrix.distro }}${{ matrix.version }}- - name: "Build ${{ matrix.distro }} ${{ matrix.version }} Docker image" @@ -175,7 +174,7 @@ jobs: run: source .ci/docker.sh --build - name: "Build debug and test" - if: matrix.test != false + if: matrix.test == true shell: bash run: | source .ci/docker.sh @@ -184,12 +183,12 @@ jobs: - name: "Build release package" id: build - if: matrix.package != false + if: ${{ matrix.package != '' }} shell: bash env: - SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}' PACKAGE: '${{ matrix.package }}' SERVER_ONLY: '${{ matrix.server_only }}' + SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}' run: | source .ci/docker.sh args=() @@ -218,7 +217,7 @@ jobs: uses: actions/cache/save@v6 with: key: ${{ steps.ccache_restore.outputs.cache-primary-key }} - path: ${{ env.CACHE }} + path: ${{ env.CACHE_DIR }} - name: "Upload artifact" id: upload_artifact @@ -265,7 +264,6 @@ jobs: target: 13 runner: macos-15-intel - ccache_eviction_age: 7d cmake_generator: Ninja make_package: true override_target: 13 @@ -282,7 +280,6 @@ jobs: target: 14 runner: macos-14 - ccache_eviction_age: 7d cmake_generator: Ninja make_package: true package_suffix: "-macOS14" @@ -298,7 +295,6 @@ jobs: target: 15 runner: macos-15 - ccache_eviction_age: 7d cmake_generator: Ninja make_package: true package_suffix: "-macOS15" @@ -314,7 +310,6 @@ jobs: target: 15 runner: macos-15 - ccache_eviction_age: 7d cmake_generator: Ninja qt_version: 6.11.0 qt_arch: clang_64 @@ -343,6 +338,7 @@ jobs: timeout-minutes: 100 env: CCACHE_DIR: ${{ github.workspace }}/.cache/ + CCACHE_EVICTION_AGE: 7d CCACHE_SIZE: 550M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy steps: From 18b2b2c761045beeefb2ca0af5f2da00626b877f Mon Sep 17 00:00:00 2001 From: tooomm Date: Tue, 30 Jun 2026 14:21:59 +0200 Subject: [PATCH 13/30] rename parameter + cleanup --- .github/workflows/desktop-build.yml | 43 ++++++++++++++--------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 91cd91bdf..a79dfece4 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -97,7 +97,7 @@ jobs: strategy: fail-fast: false matrix: - # The files in ".ci/$distro$version" correspond to the values given here + # The files in ".ci/$distro$distro_version" correspond to the values given here include: - distro: Arch @@ -105,55 +105,55 @@ jobs: test: true # run debug build and tests - distro: Servatrice_Debian - version: 12 + distro_version: 12 package: DEB server_only: true - distro: Debian - version: 12 + distro_version: 12 package: DEB - distro: Debian - version: 13 + distro_version: 13 package: DEB test: true # run debug build and tests on newest distro version - distro: Fedora - version: 43 + distro_version: 43 package: RPM - distro: Fedora - version: 44 + distro_version: 44 package: RPM test: true # run debug build and tests on newest distro version - distro: Ubuntu - version: 24.04 + distro_version: 24.04 package: DEB - distro: Ubuntu - version: 26.04 + distro_version: 26.04 package: DEB test: true # run debug build and tests on newest distro version - name: ${{ matrix.distro }} ${{ matrix.version }} + name: ${{ matrix.distro }} ${{ matrix.distro_version }} needs: configure runs-on: ubuntu-latest continue-on-error: ${{ matrix.allow-failure == true }} timeout-minutes: 70 env: - CACHE_DIR: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.version }} # directory for caching docker image and ccache + CACHE_DIR: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.distro_version }} # directory for caching docker image and ccache CCACHE_EVICTION_AGE: 7d CCACHE_SIZE: 550M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy CMAKE_GENERATOR: 'Ninja' - NAME: ${{ matrix.distro }}${{ matrix.version }} + NAME: ${{ matrix.distro }}${{ matrix.distro_version }} steps: - name: "Checkout" @@ -165,11 +165,11 @@ jobs: env: BRANCH_NAME: ${{ github.head_ref || github.ref_name }} with: - key: ccache-${{ matrix.distro }}${{ matrix.version }}-${{ env.BRANCH_NAME }} + key: ccache-${{ matrix.distro }}${{ matrix.distro_version }}-${{ env.BRANCH_NAME }} path: ${{ env.CACHE_DIR }} - restore-keys: ccache-${{ matrix.distro }}${{ matrix.version }}- + restore-keys: ccache-${{ matrix.distro }}${{ matrix.distro_version }}- - - name: "Build ${{ matrix.distro }} ${{ matrix.version }} Docker image" + - name: "Build ${{ matrix.distro }} ${{ matrix.distro_version }} Docker image" shell: bash run: source .ci/docker.sh --build @@ -188,7 +188,7 @@ jobs: env: PACKAGE: '${{ matrix.package }}' SERVER_ONLY: '${{ matrix.server_only }}' - SUFFIX: '-${{ matrix.distro }}${{ matrix.version }}' + SUFFIX: '-${{ matrix.distro }}${{ matrix.distro_version }}' run: | source .ci/docker.sh args=() @@ -261,7 +261,7 @@ jobs: matrix: include: - os: macOS - target: 13 + os_target_version: 13 runner: macos-15-intel cmake_generator: Ninja @@ -277,7 +277,7 @@ jobs: xcode: "16.4" - os: macOS - target: 14 + os_target_version: 14 runner: macos-14 cmake_generator: Ninja @@ -292,7 +292,7 @@ jobs: xcode: "15.4" - os: macOS - target: 15 + os_target_version: 15 runner: macos-15 cmake_generator: Ninja @@ -307,7 +307,7 @@ jobs: xcode: "16.4" - os: macOS - target: 15 + os_target_version: 15 runner: macos-15 cmake_generator: Ninja @@ -320,7 +320,7 @@ jobs: xcode: "16.4" - os: Windows - target: 10 + os_target_version: 10 runner: windows-2025 cmake_generator: "Visual Studio 18 2026" @@ -332,7 +332,7 @@ jobs: qt_modules: qtimageformats qtmultimedia qtwebsockets type: Release - name: ${{ matrix.os }} ${{ matrix.target }}${{ case(matrix.soc == 'Intel', ' Intel', '') }}${{ case(matrix.type == 'Debug', ' Debug', '') }} + name: ${{ matrix.os }} ${{ matrix.os_target_version }}${{ case(matrix.soc == 'Intel', ' Intel', '') }}${{ case(matrix.type == 'Debug', ' Debug', '') }} needs: configure runs-on: ${{ matrix.runner }} timeout-minutes: 100 @@ -439,7 +439,6 @@ jobs: shell: bash env: BUILDTYPE: '${{ matrix.type }}' - CCACHE_EVICTION_AGE: ${{ matrix.ccache_eviction_age }} CMAKE_GENERATOR: ${{ matrix.cmake_generator }} CMAKE_GENERATOR_PLATFORM: ${{ matrix.cmake_generator_platform }} DEVELOPER_DIR: '/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer' From 56a64d2ddd2c04e3a30aec8dda3f219354bc5abd Mon Sep 17 00:00:00 2001 From: tooomm Date: Thu, 2 Jul 2026 18:14:33 +0200 Subject: [PATCH 14/30] reorder [ 0 ] Get source [ 1 ] Install dependencies [ 2 ] Setup and prepare compilation [ 3 ] Build [ 4 ] Cleanup [ 5 ] Deploy --- .github/workflows/desktop-build.yml | 44 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index a79dfece4..ef675fa9a 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -347,28 +347,10 @@ jobs: with: submodules: recursive - - name: "[Windows] Add msbuild to PATH" - if: matrix.os == 'Windows' - id: add-msbuild - uses: microsoft/setup-msbuild@v3 - with: - msbuild-architecture: x64 - - - name: "[macOS] Setup ccache" + - name: "[macOS] Install ccache" if: matrix.os == 'macOS' && matrix.use_ccache == true run: brew install ccache - - name: "[macOS] Restore compiler cache (ccache)" - if: matrix.os == 'macOS' && matrix.use_ccache == true - id: ccache_restore - uses: actions/cache/restore@v6 - env: - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} - with: - key: ccache-${{ matrix.runner }}-${{ matrix.soc }}-${{ matrix.type }}-${{ env.BRANCH_NAME }} - path: ${{ env.CCACHE_DIR }} - restore-keys: ccache-${{ matrix.runner }}-${{ matrix.soc }}-${{ matrix.type }}- - - name: "Install aqtinstall" run: pipx install aqtinstall @@ -411,6 +393,11 @@ jobs: key: thin-qt-macos-${{ matrix.soc }}-${{ steps.resolve_qt_version.outputs.version }} path: ${{ github.workspace }}/Qt + - name: "[Windows] Install NSIS" + if: matrix.os == 'Windows' + shell: bash + run: choco install nsis + - name: "[Windows] Install Qt ${{ matrix.qt_version }}" if: matrix.os == 'Windows' uses: jurplel/install-qt-action@v4 @@ -422,10 +409,12 @@ jobs: modules: ${{ matrix.qt_modules }} version: ${{ steps.resolve_qt_version.outputs.version }} - - name: "[Windows] Install NSIS" + - name: "[Windows] Setup MSBuild" if: matrix.os == 'Windows' - shell: bash - run: choco install nsis + id: add-msbuild + uses: microsoft/setup-msbuild@v3 + with: + msbuild-architecture: x64 - name: "Setup vcpkg cache" id: vcpkg-cache @@ -433,6 +422,17 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} + - name: "[macOS] Restore compiler cache (ccache)" + if: matrix.os == 'macOS' && matrix.use_ccache == true + id: ccache_restore + uses: actions/cache/restore@v6 + env: + BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + with: + key: ccache-${{ matrix.runner }}-${{ matrix.soc }}-${{ matrix.type }}-${{ env.BRANCH_NAME }} + path: ${{ env.CCACHE_DIR }} + restore-keys: ccache-${{ matrix.runner }}-${{ matrix.soc }}-${{ matrix.type }}- + # Uses environment variables, see compile.sh for more details - name: "Build Cockatrice" id: build From d90d01fb9a43c36ecd3c1e72d6ab006c91262386 Mon Sep 17 00:00:00 2001 From: tooomm Date: Fri, 3 Jul 2026 16:42:56 +0200 Subject: [PATCH 15/30] var rename + cleanup quotes --- .github/workflows/desktop-build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index ef675fa9a..378539f3b 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -152,7 +152,7 @@ jobs: CACHE_DIR: ${{ github.workspace }}/.cache/${{ matrix.distro }}${{ matrix.distro_version }} # directory for caching docker image and ccache CCACHE_EVICTION_AGE: 7d CCACHE_SIZE: 550M # space of all repo is 10Gi: https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy - CMAKE_GENERATOR: 'Ninja' + CMAKE_GENERATOR: Ninja NAME: ${{ matrix.distro }}${{ matrix.distro_version }} steps: @@ -186,17 +186,17 @@ jobs: if: ${{ matrix.package != '' }} shell: bash env: - PACKAGE: '${{ matrix.package }}' - SERVER_ONLY: '${{ matrix.server_only }}' - SUFFIX: '-${{ matrix.distro }}${{ matrix.distro_version }}' + PACKAGE: ${{ matrix.package }} + PACKAGE_SUFFIX: -${{ matrix.distro }}${{ matrix.distro_version }} + SERVER_ONLY: ${{ matrix.server_only }} run: | source .ci/docker.sh args=() - [[ "$SERVER_ONLY" == "true" ]] && args+=(--no-client) [[ "$GITHUB_REF" == "refs/heads/master" ]] && args+=(--evict-ccache "$CCACHE_EVICTION_AGE") + [[ "$SERVER_ONLY" == "true" ]] && args+=(--no-client) args+=(--ccache "$CCACHE_SIZE") args+=(--cmake-generator "$CMAKE_GENERATOR") - args+=(--suffix "$SUFFIX") + args+=(--suffix "$PACKAGE_SUFFIX") RUN --server --release --package "$PACKAGE" "${args[@]}" @@ -438,7 +438,7 @@ jobs: id: build shell: bash env: - BUILDTYPE: '${{ matrix.type }}' + BUILDTYPE: ${{ matrix.type }} CMAKE_GENERATOR: ${{ matrix.cmake_generator }} CMAKE_GENERATOR_PLATFORM: ${{ matrix.cmake_generator_platform }} DEVELOPER_DIR: '/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer' @@ -446,8 +446,8 @@ jobs: MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} - MAKE_PACKAGE: '${{ matrix.make_package }}' - PACKAGE_SUFFIX: '${{ matrix.package_suffix }}' + MAKE_PACKAGE: ${{ matrix.make_package }} + PACKAGE_SUFFIX: ${{ matrix.package_suffix }} TARGET_MACOS_VERSION: ${{ matrix.override_target }} USE_CCACHE: ${{ matrix.use_ccache }} VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite' From ba6ae0999b91e4a21cd6d98ea4b0d7ed309f4471 Mon Sep 17 00:00:00 2001 From: tooomm Date: Fri, 3 Jul 2026 17:19:44 +0200 Subject: [PATCH 16/30] rename "name" var --- .ci/docker.sh | 12 ++++++------ .github/workflows/desktop-build.yml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.ci/docker.sh b/.ci/docker.sh index 46112daaa..94bb43bf2 100644 --- a/.ci/docker.sh +++ b/.ci/docker.sh @@ -7,13 +7,13 @@ # usage: source