From e7120d9fb371da665e7b5fb0c70b41d4d9c3fd51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 13:42:20 +0000 Subject: [PATCH 01/18] Add logging --- .github/workflows/test-bwa.yml | 26 +++++++++++++++++++++++--- .github/workflows/test.yml | 30 +++++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 700da35d7a..bf2f2b0723 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -123,9 +123,9 @@ jobs: - name: Install Homebrew Dependencies and run bootstrap.sh run: | - brew update - brew bundle - ./Scripts/bootstrap.sh + time brew update + time brew bundle + time ./Scripts/bootstrap.sh - name: Boot Simulator id: boot-simulator @@ -149,6 +149,26 @@ jobs: -quiet kill "$PYEETD_PID" + - name: Print DerivedData file tree + if: always() + run: | + echo "=== Disk Usage Report ===" + echo "" + echo "--- Homebrew ---" + du -sh ~/Library/Caches/Homebrew + du -sh /opt/homebrew/Cellar + + echo "" + echo "--- top level build/ ---" + du -sh build + du -sh build/DerivedData + du -sh build/DerivedData/* + du -sh build/DerivedData/Build/* + + echo "" + echo "=== build/ Directory Trees ===" + find build/ -type d + - name: Test id: test env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b2a44c85c3..a0b91260d3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -118,9 +118,9 @@ jobs: - name: Install Homebrew Dependencies and run bootstrap.sh run: | - brew update - brew bundle - ./Scripts/bootstrap.sh + time brew update + time brew bundle + time ./Scripts/bootstrap.sh - name: Boot Simulator id: boot-simulator @@ -144,6 +144,30 @@ jobs: -quiet kill "$PYEETD_PID" + - name: Print DerivedData file tree + if: always() + run: | + echo "=== Disk Usage Report ===" + echo "" + echo "--- Homebrew ---" + du -sh ~/Library/Caches/Homebrew + du -sh /opt/homebrew/Cellar + + echo "" + echo "--- top level build/ ---" + du -sh build + du -sh build/DerivedData + du -sh build/DerivedData/* + du -sh build/DerivedData/Build/* + du -sh build/DerivedData/SourcePackages/* + du -sh build/DerivedData/SourcePackages/artifacts/* + du -sh build/DerivedData/SourcePackages/checkouts/* + du -sh build/DerivedData/SourcePackages/repositories/* + + echo "" + echo "=== build/ Directory Trees ===" + find build/ -type d + - name: Test id: test env: From 0295c3bbd4f45e208edad69afef936ada5b155cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 13:43:03 +0000 Subject: [PATCH 02/18] Cache DerivedData --- .github/workflows/test-bwa.yml | 8 ++++++++ .github/workflows/test.yml | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index bf2f2b0723..663776b984 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -117,6 +117,14 @@ jobs: restore-keys: | ${{ runner.os }}-spm- + - name: Cache DerivedData + uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 + with: + path: build/DerivedData + key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-deriveddata-${{ github.workflow }} + - name: Update local config run: | ./Scripts-bwa/update_test_local_config.sh "${_COMPILER_FLAGS}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a0b91260d3..821f65f573 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -112,6 +112,14 @@ jobs: restore-keys: | ${{ runner.os }}-spm- + - name: Cache DerivedData + uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 + with: + path: build/DerivedData + key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-deriveddata-${{ github.workflow }} + - name: Update local config run: | ./Scripts/update_test_local_config.sh "${_COMPILER_FLAGS}" From 6d768709b6997efbf110c2b676dfa88b614e0c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 13:49:24 +0000 Subject: [PATCH 03/18] Enable xcode26 compilation cache --- .github/workflows/test-bwa.yml | 9 +++++++++ .github/workflows/test.yml | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 663776b984..1deadf3616 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -57,6 +57,15 @@ env: _COMPILER_FLAGS: ${{ inputs.compiler-flags }} _GITHUB_ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }} + # xcode26 compilation cache + COMPILATION_CACHE_ENABLE_CACHING: "YES" + COMPILATION_CACHE_ENABLE_PLUGIN: "YES" + SWIFT_ENABLE_COMPILE_CACHE: "YES" + CLANG_ENABLE_COMPILE_CACHE: "YES" + SWIFT_ENABLE_EXPLICIT_MODULES: "YES" + SWIFT_USE_INTEGRATED_DRIVER: "YES" + CLANG_ENABLE_MODULES: "YES" + jobs: test: name: Test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 821f65f573..cdd60ade74 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,6 +52,15 @@ env: _COMPILER_FLAGS: ${{ inputs.compiler-flags }} _GITHUB_ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }} + # xcode26 compilation cache + COMPILATION_CACHE_ENABLE_CACHING: "YES" + COMPILATION_CACHE_ENABLE_PLUGIN: "YES" + SWIFT_ENABLE_COMPILE_CACHE: "YES" + CLANG_ENABLE_COMPILE_CACHE: "YES" + SWIFT_ENABLE_EXPLICIT_MODULES: "YES" + SWIFT_USE_INTEGRATED_DRIVER: "YES" + CLANG_ENABLE_MODULES: "YES" + jobs: test: name: Test From b914b5a8b3e96804b382278805ad35a7b4afed45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 13:52:11 +0000 Subject: [PATCH 04/18] Add file size logs --- .github/workflows/test-bwa.yml | 5 +++++ .github/workflows/test.yml | 1 + 2 files changed, 6 insertions(+) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 1deadf3616..569877acc7 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -181,6 +181,11 @@ jobs: du -sh build/DerivedData du -sh build/DerivedData/* du -sh build/DerivedData/Build/* + du -sh build/DerivedData/Build/Intermediates.noindex/* + du -sh build/DerivedData/SourcePackages/* + du -sh build/DerivedData/SourcePackages/artifacts/* + du -sh build/DerivedData/SourcePackages/checkouts/* + du -sh build/DerivedData/SourcePackages/repositories/* echo "" echo "=== build/ Directory Trees ===" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cdd60ade74..3effeb0570 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -176,6 +176,7 @@ jobs: du -sh build/DerivedData du -sh build/DerivedData/* du -sh build/DerivedData/Build/* + du -sh build/DerivedData/Build/Intermediates.noindex/* du -sh build/DerivedData/SourcePackages/* du -sh build/DerivedData/SourcePackages/artifacts/* du -sh build/DerivedData/SourcePackages/checkouts/* From 443a2a765c1def7fd6a704e56530429d3c66649d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 13:54:22 +0000 Subject: [PATCH 05/18] Set IgnoreFileSystemDeviceInodeChanges flag --- .github/workflows/test-bwa.yml | 4 ++++ .github/workflows/test.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 569877acc7..c33cfeebea 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -134,6 +134,10 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }} + # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache + - name: Set IgnoreFileSystemDeviceInodeChanges flag + run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES + - name: Update local config run: | ./Scripts-bwa/update_test_local_config.sh "${_COMPILER_FLAGS}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3effeb0570..b1a3d0d19b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -129,6 +129,10 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }} + # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache + - name: Set IgnoreFileSystemDeviceInodeChanges flag + run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES + - name: Update local config run: | ./Scripts/update_test_local_config.sh "${_COMPILER_FLAGS}" From 194ff76a534754ca631a57189b96cfb869394d4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 14:16:38 +0000 Subject: [PATCH 06/18] Remove postCompileScripts and postBuildScripts from project-*.yml files --- project-bwa.yml | 19 ------------------- project-bwth.yml | 15 --------------- project-pm.yml | 19 ------------------- 3 files changed, 53 deletions(-) diff --git a/project-bwa.yml b/project-bwa.yml index ad8188fb27..112436366e 100644 --- a/project-bwa.yml +++ b/project-bwa.yml @@ -111,25 +111,6 @@ targets: - $(SRCROOT)/Authenticator/Application/Support/Settings.bundle/Acknowledgements.plist - $(SRCROOT)/Authenticator/Application/Support/Settings.bundle/Acknowledgements.latest_results.txt - $(SRCROOT)/Authenticator/Application/Support/Settings.bundle/Acknowledgements - postCompileScripts: - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftlint - name: Swiftlint - basedOnDependencyAnalysis: false - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftformat --lint --lenient . - name: SwiftFormat Lint - basedOnDependencyAnalysis: false - postBuildScripts: - - path: Scripts-bwa/update_settings_version_number.sh - name: "Settings.bundle: Update Version Number" - basedOnDependencyAnalysis: false AuthenticatorTests: type: bundle.unit-test platform: iOS diff --git a/project-bwth.yml b/project-bwth.yml index c5246548e8..3e3ab2e85d 100644 --- a/project-bwth.yml +++ b/project-bwth.yml @@ -76,21 +76,6 @@ targets: - target: TestHarnessShared - target: BitwardenKit/BitwardenKit - target: BitwardenKit/BitwardenResources - postCompileScripts: - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftlint - name: Swiftlint - basedOnDependencyAnalysis: false - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftformat --lint --lenient . - name: SwiftFormat Lint - basedOnDependencyAnalysis: false TestHarnessTests: type: bundle.unit-test platform: iOS diff --git a/project-pm.yml b/project-pm.yml index 8e64c9e57e..2afa51ef45 100644 --- a/project-pm.yml +++ b/project-pm.yml @@ -186,25 +186,6 @@ targets: - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements.plist - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements.latest_results.txt - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements - postCompileScripts: - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftlint - name: Swiftlint - basedOnDependencyAnalysis: false - - script: | - if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then - PATH="/opt/homebrew/bin:$PATH" - fi - mint run swiftformat --lint --lenient . - name: SwiftFormat Lint - basedOnDependencyAnalysis: false - postBuildScripts: - - path: Scripts/update_settings_version_number.sh - name: "Settings.bundle: Update Version Number" - basedOnDependencyAnalysis: false BitwardenTests: type: bundle.unit-test platform: iOS From 6fc17234b9b567cb8ad2ba9d17c722199a83a3b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 15:25:55 +0000 Subject: [PATCH 07/18] Restore file timestamps --- .github/workflows/test-bwa.yml | 4 ++++ .github/workflows/test.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index c33cfeebea..d94c3c562f 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -134,6 +134,10 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }} + - name: Restore timestamps + uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 + #uses: alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 + # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b1a3d0d19b..09e306dd6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -129,6 +129,10 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }} + - name: Restore timestamps + uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 + #uses: alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 + # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES From 18abbd2becb20b927dd7990c65c2959f5f184136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 16:46:58 +0000 Subject: [PATCH 08/18] Testing with a new commit --- .github/workflows/test-bwa.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index d94c3c562f..43ec73f98b 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -136,7 +136,7 @@ jobs: - name: Restore timestamps uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 - #uses: alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 + #uses:alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 09e306dd6e..e497300148 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -131,7 +131,7 @@ jobs: - name: Restore timestamps uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 - #uses: alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 + #uses:alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag From 27d9f0505fd1352bd6f9866df3ff6dedf4c71719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 4 Mar 2026 17:05:33 +0000 Subject: [PATCH 09/18] Add -showBuildTimingSummary flag to xcodebuild --- .github/workflows/test-bwa.yml | 3 ++- .github/workflows/test.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 43ec73f98b..6158666b33 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -171,6 +171,7 @@ jobs: -destination "platform=iOS Simulator,id=$_SIMULATOR_ID" \ -derivedDataPath build/DerivedData \ -resultBundlePath "$_BUILD_RESULT_BUNDLE_PATH" \ + -showBuildTimingSummary \ -quiet kill "$PYEETD_PID" @@ -214,7 +215,7 @@ jobs: -derivedDataPath build/DerivedData \ -test-timeouts-enabled yes \ -maximum-test-execution-time-allowance 1 \ - -quiet + -showBuildTimingSummary kill "$PYEETD_PID" - name: Print Logs Summary diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e497300148..ffaeee33cd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -166,7 +166,7 @@ jobs: -destination "platform=iOS Simulator,id=$_SIMULATOR_ID" \ -derivedDataPath build/DerivedData \ -resultBundlePath "$_BUILD_RESULT_BUNDLE_PATH" \ - -quiet + -showBuildTimingSummary kill "$PYEETD_PID" - name: Print DerivedData file tree @@ -209,6 +209,7 @@ jobs: -derivedDataPath build/DerivedData \ -test-timeouts-enabled yes \ -maximum-test-execution-time-allowance 1 \ + -showBuildTimingSummary \ -quiet kill "$PYEETD_PID" From 7cc0dbdce6e556b817e14a4bf3e68c3bac7b2522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Mon, 1 Jun 2026 21:39:17 +0100 Subject: [PATCH 10/18] Use xlarge runners --- .github/workflows/test-bwa.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 6c7100c20a..b21efedaf5 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -70,7 +70,7 @@ env: jobs: test: name: Test - runs-on: macos-26 + runs-on: macos-26-xlarge timeout-minutes: 50 permissions: contents: read diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 13ab73302b..1178399ad5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,7 +64,7 @@ env: jobs: test: name: Test - runs-on: macos-26 + runs-on: macos-26-xlarge timeout-minutes: 50 permissions: contents: read From c75ccdd48dae956a21adaa47fe45f32ccf4d5bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Thu, 4 Jun 2026 22:32:29 +0100 Subject: [PATCH 11/18] Trigger test workflows on merges to main and release branches --- .github/workflows/test-bwa.yml | 9 ++++----- .github/workflows/test.yml | 5 ++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index b21efedaf5..d2e7f495ca 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -1,11 +1,10 @@ name: Test Authenticator on: - # push: - # branches: - # - "main" - # - "rc" - # - "hotfix-rc" + push: + branches: + - main + - release/**/* pull_request: types: [opened, synchronize] paths-ignore: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1178399ad5..5791cc5ed6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,9 +3,8 @@ name: Test Password Manager on: push: branches: - - "main" - - "rc" - - "hotfix-rc" + - main + - release/**/* pull_request: types: [opened, synchronize] paths-ignore: From cfb265e34b45dd352b677238d62cf44d5fbad04f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Thu, 4 Jun 2026 22:34:14 +0100 Subject: [PATCH 12/18] Only cache on main --- .github/workflows/test-bwa.yml | 38 +++++++++++++++++++++++++++------ .github/workflows/test.yml | 39 ++++++++++++++++++++++++++++------ 2 files changed, 63 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index d2e7f495ca..93e9fb2bda 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -110,29 +110,32 @@ jobs: with: bundler-cache: true - - name: Cache Mint packages - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + - name: Restore Mint packages + id: restore-mint + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: .mint key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} restore-keys: | ${{ runner.os }}-mint- - - name: Cache SPM packages - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + - name: Restore SPM packages + id: restore-spm + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData/SourcePackages key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm- - - name: Cache DerivedData - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 + - name: Restore DerivedData + id: restore-deriveddata + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} restore-keys: | - ${{ runner.os }}-deriveddata-${{ github.workflow }} + ${{ runner.os }}-deriveddata-${{ github.workflow }}- - name: Restore timestamps uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 @@ -175,6 +178,27 @@ jobs: -quiet kill "$PYEETD_PID" + - name: Save Mint packages + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-mint.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: .mint + key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} + + - name: Save SPM packages + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-spm.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: build/DerivedData/SourcePackages + key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + + - name: Save DerivedData + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-deriveddata.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: build/DerivedData + key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + - name: Print DerivedData file tree if: always() run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5791cc5ed6..7fa3b4695c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -104,29 +104,32 @@ jobs: with: bundler-cache: true - - name: Cache Mint packages - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + - name: Restore Mint packages + id: restore-mint + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: .mint key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} restore-keys: | ${{ runner.os }}-mint- - - name: Cache SPM packages - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + - name: Restore SPM packages + id: restore-spm + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData/SourcePackages key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm- - - name: Cache DerivedData - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 + - name: Restore DerivedData + id: restore-deriveddata + uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} restore-keys: | - ${{ runner.os }}-deriveddata-${{ github.workflow }} + ${{ runner.os }}-deriveddata-${{ github.workflow }}- - name: Restore timestamps uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 @@ -168,6 +171,28 @@ jobs: -showBuildTimingSummary kill "$PYEETD_PID" + + - name: Save Mint packages + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-mint.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: .mint + key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} + + - name: Save SPM packages + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-spm.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: build/DerivedData/SourcePackages + key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + + - name: Save DerivedData + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-deriveddata.outputs.cache-hit != 'true' + uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: build/DerivedData + key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + - name: Print DerivedData file tree if: always() run: | From d72adc1b4def939bcb391effbc4fd372f1bbe55f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Thu, 4 Jun 2026 22:50:01 +0100 Subject: [PATCH 13/18] Disable xcode index store --- .github/workflows/test-bwa.yml | 3 ++- .github/workflows/test.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 93e9fb2bda..5f200cf617 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -57,7 +57,8 @@ env: _COMPILER_FLAGS: ${{ inputs.compiler-flags }} _GITHUB_ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }} - # xcode26 compilation cache + # xcode optimization flags + COMPILER_INDEX_STORE_ENABLE: "NO" COMPILATION_CACHE_ENABLE_CACHING: "YES" COMPILATION_CACHE_ENABLE_PLUGIN: "YES" SWIFT_ENABLE_COMPILE_CACHE: "YES" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7fa3b4695c..b715d7a8b7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -51,7 +51,8 @@ env: _COMPILER_FLAGS: ${{ inputs.compiler-flags }} _GITHUB_ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }} - # xcode26 compilation cache + # xcode optimization flags + COMPILER_INDEX_STORE_ENABLE: "NO" COMPILATION_CACHE_ENABLE_CACHING: "YES" COMPILATION_CACHE_ENABLE_PLUGIN: "YES" SWIFT_ENABLE_COMPILE_CACHE: "YES" From 66a589a24bd51f4c7f4ccd0000f5863925e1c479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Thu, 4 Jun 2026 22:51:16 +0100 Subject: [PATCH 14/18] Add build optimization flags --- .github/workflows/test-bwa.yml | 3 +++ .github/workflows/test.yml | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 5f200cf617..c60c3d154d 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -175,6 +175,9 @@ jobs: -destination "platform=iOS Simulator,id=$_SIMULATOR_ID" \ -derivedDataPath build/DerivedData \ -resultBundlePath "$_BUILD_RESULT_BUNDLE_PATH" \ + -parallelizeTargets \ + -skipPackagePluginValidation \ + -skipMacroValidation \ -showBuildTimingSummary \ -quiet kill "$PYEETD_PID" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b715d7a8b7..c85f7feb84 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -169,10 +169,13 @@ jobs: -destination "platform=iOS Simulator,id=$_SIMULATOR_ID" \ -derivedDataPath build/DerivedData \ -resultBundlePath "$_BUILD_RESULT_BUNDLE_PATH" \ - -showBuildTimingSummary + -parallelizeTargets \ + -skipPackagePluginValidation \ + -skipMacroValidation \ + -showBuildTimingSummary \ + -quiet kill "$PYEETD_PID" - - name: Save Mint packages if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.restore-mint.outputs.cache-hit != 'true' uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 From 2c3c513a3aa5250e84172aba1053bc08f3356218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 17 Jun 2026 16:40:27 +0100 Subject: [PATCH 15/18] Remove profiling code --- .github/workflows/test-bwa.yml | 10 +++------- .github/workflows/test.yml | 10 +++------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index fed55fd8e0..3480b09ad6 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -138,10 +138,6 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }}- - - name: Restore timestamps - uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 - #uses:alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 - # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES @@ -152,9 +148,9 @@ jobs: - name: Install Homebrew Dependencies and run bootstrap.sh run: | - time brew update - time brew bundle - time ./Scripts/bootstrap.sh + brew update + brew bundle + ./Scripts/bootstrap.sh - name: Boot Simulator id: boot-simulator diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f2189a438a..788483a3a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,10 +132,6 @@ jobs: restore-keys: | ${{ runner.os }}-deriveddata-${{ github.workflow }}- - - name: Restore timestamps - uses: chetan/git-restore-mtime-action@d186aca54f8760da4dec55313195e51ed3ebb0b3 # v2.3 - #uses:alerque/git-warp-time@4355035da0c2766a949d05bcb404237622d6bb25 # v1.0.0 - # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag run: defaults write com.apple.dt.XCBuild IgnoreFileSystemDeviceInodeChanges -bool YES @@ -146,9 +142,9 @@ jobs: - name: Install Homebrew Dependencies and run bootstrap.sh run: | - time brew update - time brew bundle - time ./Scripts/bootstrap.sh + brew update + brew bundle + ./Scripts/bootstrap.sh - name: Boot Simulator id: boot-simulator From c4b9c0d5664ed6524ef1c899135bcca70c3b7c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 17 Jun 2026 21:34:37 +0100 Subject: [PATCH 16/18] Remove logs --- .github/workflows/test-bwa.yml | 25 ------------------------- .github/workflows/test.yml | 25 ------------------------- 2 files changed, 50 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 3480b09ad6..8ef6f36d7c 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -199,31 +199,6 @@ jobs: path: build/DerivedData key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} - - name: Print DerivedData file tree - if: always() - run: | - echo "=== Disk Usage Report ===" - echo "" - echo "--- Homebrew ---" - du -sh ~/Library/Caches/Homebrew - du -sh /opt/homebrew/Cellar - - echo "" - echo "--- top level build/ ---" - du -sh build - du -sh build/DerivedData - du -sh build/DerivedData/* - du -sh build/DerivedData/Build/* - du -sh build/DerivedData/Build/Intermediates.noindex/* - du -sh build/DerivedData/SourcePackages/* - du -sh build/DerivedData/SourcePackages/artifacts/* - du -sh build/DerivedData/SourcePackages/checkouts/* - du -sh build/DerivedData/SourcePackages/repositories/* - - echo "" - echo "=== build/ Directory Trees ===" - find build/ -type d - - name: Test id: test env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 788483a3a3..5fb9f66fa0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -193,31 +193,6 @@ jobs: path: build/DerivedData key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} - - name: Print DerivedData file tree - if: always() - run: | - echo "=== Disk Usage Report ===" - echo "" - echo "--- Homebrew ---" - du -sh ~/Library/Caches/Homebrew - du -sh /opt/homebrew/Cellar - - echo "" - echo "--- top level build/ ---" - du -sh build - du -sh build/DerivedData - du -sh build/DerivedData/* - du -sh build/DerivedData/Build/* - du -sh build/DerivedData/Build/Intermediates.noindex/* - du -sh build/DerivedData/SourcePackages/* - du -sh build/DerivedData/SourcePackages/artifacts/* - du -sh build/DerivedData/SourcePackages/checkouts/* - du -sh build/DerivedData/SourcePackages/repositories/* - - echo "" - echo "=== build/ Directory Trees ===" - find build/ -type d - - name: Test id: test env: From 4caffe22846f3466b8951cd2448d91b7fcab3970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Wed, 17 Jun 2026 21:46:02 +0100 Subject: [PATCH 17/18] Update deriveddata cache key name to remove spaces --- .github/workflows/test-bwa.yml | 6 +++--- .github/workflows/test.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 8ef6f36d7c..616c744826 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -134,9 +134,9 @@ jobs: uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData - key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + key: ${{ runner.os }}-deriveddata-testbwa-${{ github.sha }} restore-keys: | - ${{ runner.os }}-deriveddata-${{ github.workflow }}- + ${{ runner.os }}-deriveddata-testbwa- # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag @@ -197,7 +197,7 @@ jobs: uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData - key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + key: ${{ runner.os }}-deriveddata-testbwa-${{ github.sha }} - name: Test id: test diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5fb9f66fa0..688868384d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -128,9 +128,9 @@ jobs: uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData - key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + key: ${{ runner.os }}-deriveddata-testbwpm-${{ github.sha }} restore-keys: | - ${{ runner.os }}-deriveddata-${{ github.workflow }}- + ${{ runner.os }}-deriveddata-testbwpm- # src: https://stackoverflow.com/questions/53753511/is-it-possible-to-copy-an-xcode-derived-data-cache - name: Set IgnoreFileSystemDeviceInodeChanges flag @@ -191,7 +191,7 @@ jobs: uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: build/DerivedData - key: ${{ runner.os }}-deriveddata-${{ github.workflow }}-${{ github.sha }} + key: ${{ runner.os }}-deriveddata-testbwpm-${{ github.sha }} - name: Test id: test From be08f457ed99c96b50eeb60aa78a151a112940d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lison=20Fernandes?= Date: Thu, 18 Jun 2026 15:31:02 +0100 Subject: [PATCH 18/18] Add missing slash --- .github/workflows/test-bwa.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-bwa.yml b/.github/workflows/test-bwa.yml index 616c744826..7f84a18638 100644 --- a/.github/workflows/test-bwa.yml +++ b/.github/workflows/test-bwa.yml @@ -214,7 +214,7 @@ jobs: -derivedDataPath build/DerivedData \ -test-timeouts-enabled yes \ -maximum-test-execution-time-allowance 2 \ - -showBuildTimingSummary + -showBuildTimingSummary \ -quiet kill "$PYEETD_PID"