ci: Fix BuildKit cache invalidation and add Haswell-optimised builds #1012

Merged
tcpipuk merged 1 commit from tom/haswell into main 2025-09-11 14:31:43 +00:00
Owner

The workflow was rebuilding dependencies unnecessarily despite timelord restoring timestamps because TARGET_CPU and RUST_PROFILE weren't passed to Docker, creating inconsistent cache keys. Now passes both arguments for proper cache reuse.

Adds x86-64-v3 optimised builds alongside baseline builds. Recent build improvements reducing compile times from 15-20 minutes to ~5 minutes make this additional CPU variant feasible.

Users can pull performance-optimised images with -haswell suffix (e.g. main-haswell, pr-123-haswell).

The workflow was rebuilding dependencies unnecessarily despite timelord restoring timestamps because TARGET_CPU and RUST_PROFILE weren't passed to Docker, creating inconsistent cache keys. Now passes both arguments for proper cache reuse. Adds x86-64-v3 optimised builds alongside baseline builds. Recent build improvements reducing compile times from 15-20 minutes to ~5 minutes make this additional CPU variant feasible. Users can pull performance-optimised images with -haswell suffix (e.g. main-haswell, pr-123-haswell).
tcpipuk self-assigned this 2025-09-11 11:31:47 +00:00
Jade approved these changes 2025-09-11 11:34:51 +00:00
Jade left a comment
Owner

ayyyy

ayyyy
Jade changed title from ci: Fix BuildKit cache invalidation and add Haswell-optimised builds to WIP: ci: Fix BuildKit cache invalidation and add Haswell-optimised builds 2025-09-11 11:35:13 +00:00
tcpipuk force-pushed tom/haswell from 4d6e9a9ae4
Some checks failed
Release Docker Image / define-variables (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64-haswell (pull_request) Has been cancelled
Release Docker Image / Build (pull_request) Has been cancelled
Release Docker Image / merge () (pull_request) Has been cancelled
Release Docker Image / merge (-haswell) (pull_request) Has been cancelled
Documentation / Build and Deploy Documentation (pull_request) Successful in 36s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m5s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 8m28s
to da124fbb55
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 42s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m27s
Release Docker Image / define-variables (pull_request) Successful in 2s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 7m4s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 9m33s
Release Docker Image / Build linux-amd64-haswell (pull_request) Failing after 4m46s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 9m6s
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been skipped
Release Docker Image / Create Haswell Manifest (pull_request) Has been skipped
2025-09-11 11:36:43 +00:00
Compare
tcpipuk force-pushed tom/haswell from da124fbb55
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 42s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m27s
Release Docker Image / define-variables (pull_request) Successful in 2s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 7m4s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 9m33s
Release Docker Image / Build linux-amd64-haswell (pull_request) Failing after 4m46s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 9m6s
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been skipped
Release Docker Image / Create Haswell Manifest (pull_request) Has been skipped
to 0d314c4099
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 7s
Documentation / Build and Deploy Documentation (pull_request) Successful in 44s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m29s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 6m38s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 7m29s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m36s
Release Docker Image / Build linux-amd64-haswell (pull_request) Successful in 10m3s
Release Docker Image / Create Haswell Manifest (pull_request) Successful in 14s
Release Docker Image / Create Multi-arch Manifest (pull_request) Successful in 10s
2025-09-11 11:56:06 +00:00
Compare
tcpipuk force-pushed tom/haswell from 0d314c4099
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 7s
Documentation / Build and Deploy Documentation (pull_request) Successful in 44s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m29s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 6m38s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 7m29s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m36s
Release Docker Image / Build linux-amd64-haswell (pull_request) Successful in 10m3s
Release Docker Image / Create Haswell Manifest (pull_request) Successful in 14s
Release Docker Image / Create Multi-arch Manifest (pull_request) Successful in 10s
to 2e2ab2208e
Some checks failed
Release Docker Image / define-variables (pull_request) Successful in 12s
Documentation / Build and Deploy Documentation (pull_request) Successful in 34s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m0s
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (pull_request) Successful in 7m30s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m29s
Release Docker Image / Build linux-amd64-1 (pull_request) Successful in 9m46s
Release Docker Image / Create Haswell Manifest (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been cancelled
2025-09-11 12:15:49 +00:00
Compare
tcpipuk force-pushed tom/haswell from 2e2ab2208e
Some checks failed
Release Docker Image / define-variables (pull_request) Successful in 12s
Documentation / Build and Deploy Documentation (pull_request) Successful in 34s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m0s
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (pull_request) Successful in 7m30s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m29s
Release Docker Image / Build linux-amd64-1 (pull_request) Successful in 9m46s
Release Docker Image / Create Haswell Manifest (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been cancelled
to 97fa07961e
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 44s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m13s
Release Docker Image / define-variables (pull_request) Successful in 1s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 5m45s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 5m36s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m15s
Release Docker Image / Build linux-amd64-haswell (pull_request) Failing after 18m14s
Release Docker Image / Create Haswell Manifest (pull_request) Has been skipped
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been skipped
2025-09-11 12:21:04 +00:00
Compare
tcpipuk force-pushed tom/haswell from 97fa07961e
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 44s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m13s
Release Docker Image / define-variables (pull_request) Successful in 1s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 5m45s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 5m36s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 6m15s
Release Docker Image / Build linux-amd64-haswell (pull_request) Failing after 18m14s
Release Docker Image / Create Haswell Manifest (pull_request) Has been skipped
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been skipped
to a13f0eddaf
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 31s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m1s
Release Docker Image / define-variables (pull_request) Successful in 1s
Release Docker Image / Build linux-amd64 (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64-haswell (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (pull_request) Has been cancelled
Release Docker Image / Create Haswell Manifest (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
2025-09-11 12:49:46 +00:00
Compare
tcpipuk force-pushed tom/haswell from a13f0eddaf
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 31s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m1s
Release Docker Image / define-variables (pull_request) Successful in 1s
Release Docker Image / Build linux-amd64 (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64-haswell (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (pull_request) Has been cancelled
Release Docker Image / Create Haswell Manifest (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Manifest (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
to 9c147b182f
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 35s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m50s
Release Docker Image / define-variables (pull_request) Successful in 6s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 7m41s
Release Docker Image / Build linux-amd64 (pull_request) Successful in 4m57s
Release Docker Image / Build linux-arm64 (pull_request) Successful in 4m47s
Release Docker Image / Build linux-amd64-haswell (pull_request) Successful in 1m50s
Release Docker Image / Create Haswell Manifest (pull_request) Successful in 13s
Release Docker Image / Create Multi-arch Manifest (pull_request) Successful in 14s
Documentation / Build and Deploy Documentation (push) Successful in 40s
Checks / Prek / Pre-commit & Formatting (push) Successful in 52s
Release Docker Image / define-variables (push) Successful in 2s
Release Docker Image / Build linux-arm64 (push) Successful in 1m43s
Checks / Prek / Clippy and Cargo Tests (push) Successful in 4m37s
Release Docker Image / Build linux-amd64 (push) Successful in 2m41s
Release Docker Image / Build linux-amd64-haswell (push) Successful in 2m36s
Release Docker Image / Create Multi-arch Manifest (push) Successful in 9s
Release Docker Image / Create Haswell Manifest (push) Successful in 14s
2025-09-11 13:01:18 +00:00
Compare
tcpipuk changed title from WIP: ci: Fix BuildKit cache invalidation and add Haswell-optimised builds to ci: Fix BuildKit cache invalidation and add Haswell-optimised builds 2025-09-11 14:14:24 +00:00
Author
Owner

I am running the current forgejo.ellis.link/continuwuation/continuwuity:pr-1012-head-haswell image and it seems to be running fine 🙂

I am running the current `forgejo.ellis.link/continuwuation/continuwuity:pr-1012-head-haswell` image and it seems to be running fine 🙂
tcpipuk deleted branch tom/haswell 2025-09-11 14:31:43 +00:00
@ -92,2 +95,4 @@
profile: "release"
steps:
- name: Set CPU suffix variable
Owner

@tcpipuk You don't need the bash script here - ${{ matrix.target_cpu && format('-{0}', ${{ matrix.target_cpu }}) || '' }} should work I think

@tcpipuk You don't need the bash script here - `${{ matrix.target_cpu && format('-{0}', ${{ matrix.target_cpu }}) || '' }}` should work I think
Owner

oh you even have it in the job name lol

oh you even have it in the job name lol
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity!1012
No description provided.