Skip to content

Commit 29f6aab

Browse files
committed
docs: refresh native workflow explanation
1 parent df7bb18 commit 29f6aab

2 files changed

Lines changed: 45 additions & 19 deletions

File tree

.github/workflows/ci_windows_arm64_native.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,12 +283,11 @@ jobs:
283283
Native Windows ARM64 builds produced by ci_windows_arm64_native.yaml
284284
285285
Variants:
286-
- qBittorrent ${{ env.qbt_version }} for libtorrent 1.2.20+gitc5ff6c3186
287-
- qBittorrent ${{ env.qbt_version }} lt20 for libtorrent 2.0.13+gitda7a68a440
286+
- qBittorrent ${{ env.qbt_version }} for libtorrent 1.2.20+gitc5ff6c3186 (Boost 1.86.0)
287+
- qBittorrent ${{ env.qbt_version }} lt20 for libtorrent 2.0.13+gitda7a68a440 (Boost 1.91.0)
288288
289289
Common versions:
290290
- qBittorrent: ${{ env.qbt_version }}
291-
- Boost: ${{ env.boost_version }}
292291
- Qt: ${{ env.qt_version }}
293292
env:
294293
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -310,7 +309,7 @@ jobs:
310309
Commit: ${{ github.sha }}
311310
312311
Variants:
313-
- qBittorrent ${{ env.qbt_version }} for libtorrent 1.2.20+gitc5ff6c3186
314-
- qBittorrent ${{ env.qbt_version }} lt20 for libtorrent 2.0.13+gitda7a68a440
312+
- qBittorrent ${{ env.qbt_version }} for libtorrent 1.2.20+gitc5ff6c3186 (Boost 1.86.0)
313+
- qBittorrent ${{ env.qbt_version }} lt20 for libtorrent 2.0.13+gitda7a68a440 (Boost 1.91.0)
315314
env:
316315
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

NATIVE_WORKFLOW_EXPLANATION.md

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Native ARM64 Workflow Explanation
22

3-
This repository uses one CI path: a native Windows ARM64 build of qBittorrent using MSVC ARM64 cross tools on GitHub Actions.
3+
This repository uses a single CI workflow that builds native Windows ARM64 qBittorrent binaries with MSVC cross tools on GitHub Actions.
44

55
Workflow file:
66

@@ -12,7 +12,7 @@ The repo is intentionally minimal:
1212

1313
- one default branch: main
1414
- one active workflow: ci_windows_arm64_native.yaml
15-
- one build strategy: MSVC-based ARM64 native executable
15+
- one build strategy: MSVC-based ARM64 native executable matrixed by libtorrent branch
1616

1717
Legacy workflows and MinGW helper files were removed to reduce confusion and maintenance overhead.
1818

@@ -28,15 +28,29 @@ This supports continuous prerelease builds from main and stable release builds f
2828

2929
## Version control surface
3030

31-
The main values to update for new builds are in the workflow env block:
31+
The workflow has global versions and matrix-specific versions.
32+
33+
Global values are in the workflow env block:
3234

33-
- boost_version
34-
- libt_version
3535
- qbt_version
3636
- qt_version
3737
- vcpkg_triplet
3838

39-
Keeping versions centralized makes upgrades predictable.
39+
Matrix values are in strategy.matrix.include:
40+
41+
- libt_variant
42+
- libt_ref
43+
- boost_version
44+
- libt_version_display
45+
- archive_suffix
46+
- artifact_name
47+
48+
This split allows lt12 and lt20 to use different Boost versions safely.
49+
50+
Current matrix at the time of writing:
51+
52+
- lt12: libtorrent 1.2.20+gitc5ff6c3186 with Boost 1.86.0
53+
- lt20: libtorrent 2.0.13+gitda7a68a440 with Boost 1.91.0
4054

4155
## Toolchain and dependency model
4256

@@ -52,15 +66,20 @@ All dependency resolution is aligned to one triplet:
5266

5367
That triplet is used consistently for OpenSSL, zlib, Qt configuration, libtorrent, and qBittorrent.
5468

69+
vcpkg is pinned to a fixed baseline commit to reduce random breakage from upstream package changes.
70+
5571
## Build stages
5672

5773
1. Setup compiler and tools
5874
2. Initialize vcpkg and install dependencies
59-
3. Build Qt target libraries for ARM64
60-
4. Build libtorrent for ARM64
61-
5. Build qBittorrent
62-
6. Package artifact
63-
7. Publish artifact/release
75+
3. Resolve source URLs for qBittorrent and matrix-selected Boost
76+
4. Download and unpack Boost
77+
5. Build Qt target libraries for ARM64
78+
6. Build libtorrent for ARM64 from exact commit ref in matrix
79+
7. Build qBittorrent (RelWithDebInfo)
80+
8. Package artifact zip and optional symbols folder
81+
9. Upload one artifact per matrix entry
82+
10. Publish both matrix artifacts in one release job
6483

6584
## Packaging and publishing
6685

@@ -69,12 +88,20 @@ Packaged files include:
6988
- qbittorrent.exe
7089
- dist/windows/qt.conf from qBittorrent sources
7190

91+
Generated artifact names:
92+
93+
- lt12: qbittorrent_<qbt_version>_arm64.zip
94+
- lt20: qbittorrent_<qbt_version>_lt20_arm64.zip
95+
96+
PDB files are not included in release ZIP files. If present, they are uploaded under a symbols folder inside the CI artifact.
97+
7298
Publishing rules:
7399

74-
- pushes to main create prerelease artifacts
75-
- v* tags create release artifacts
100+
- pushes to main create prerelease releases with both artifacts
101+
- v* tags create stable releases with both artifacts
76102

77103
## Notes
78104

79-
- This cleanup simplifies CI maintenance.
105+
- If a matrix entry starts failing, check the exact first compiler/linker error in that variant job before changing shared workflow logic.
106+
- A known compatibility rule is that libtorrent 1.2.20 requires Boost 1.86.0 in this pipeline.
80107
- Runtime issues in a specific qBittorrent version may still require upstream fixes and are not always CI-related.

0 commit comments

Comments
 (0)