-
-
Notifications
You must be signed in to change notification settings - Fork 2
Refactor release process: enable multi-arch, switch to Debian testing container and reset data repo #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
675ae2b to
d066eba
Compare
WalkthroughThe changes enhance the GitHub Actions workflow to build Debian packages for two additional architectures, Suggested labels
Tip ⚡💬 Agentic Chat (Pro Plan, General Availability)
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/build.yml (1)
44-44: Pin and validate the Docker image for reproducibility.You added
docker-image: debian:testing-20250407to thebuild-deb-action. Verify that:
jtdor/build-deb-action@v1supports adocker-imageinput.- The
testing-20250407tag won’t change unexpectedly.For stronger reproducibility, consider pinning by digest (e.g.,
debian@sha256:<digest>).
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(3 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🔇 Additional comments (2)
.github/workflows/build.yml (2)
13-13: Job name dynamically reflects architecture.Using
${{ matrix.architecture }}in thenamefield makes it easy to identify which architecture each job build corresponds to in the Actions UI.
24-27: Verify runner labels for newly added architectures.You've added
arm64andriscv64to the matrix with runnersubuntu-24.04-armandubuntu-latest. Please make sure:
- A self‑hosted runner labeled
ubuntu-24.04-armis registered and online for botharmhfandarm64.ubuntu-latestactually supportsriscv64or if you need a custom runner.If these labels don’t exist, consider using composite labels (e.g.,
runs-on: [self-hosted, ubuntu-24.04, arm64]) or update your runner configuration.🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/build.yml (1)
13-13: Use descriptive job names including resolved architecture
Right now thenameis set to${{ matrix.architecture }}which will showallfor the amd64 builds. Consider displaying the actual host‐arch (e.g.,amd64whenmatrix.architecture == 'all') or prefixing withBuild:for better clarity.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🔇 Additional comments (4)
.github/workflows/build.yml (4)
24-27: Verify availability of custom runner labels
ubuntu-24.04-armisn’t a standard GitHub‑hosted label. If you’re using self‑hosted runners, ensure your runners are registered with this exact label or update to use[self-hosted, linux, arm64](or appropriate labels). Otherwise the jobs may never pick up.🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
44-44: Pin Docker image to a fixed Debian testing snapshot
Specifyingdebian:testing-20250407ensures consistency across runs. This aligns with your goal of using a fixed tag since stable doesn’t supportriscv64.
56-61: Upload per‑architecture artifacts
Usingactions/upload-artifact@v4withif-no-files-found: ignoreis a solid approach to collect build outputs without failing when certain matrix runs produce nothing.
63-73: Merge artifacts into a single repository
The newmergejob correctly waits on all matrix runs, downloads artifacts withmerge-multiple: true, and commits the consolidatedpool/anddists/directories. This effectively centralizes the repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (2)
.github/workflows/build.yml (2)
44-44: Pin Docker image by digest for reproducibility.
While usingdebian:testing-20250407fixes the version, tags can be mutable. Consider pinning to a SHA256 digest to guarantee an immutable base image.
63-66: Add concurrency control to the merge job.
Themergejob pushes to a shareddatabranch and may conflict if multiple workflow runs overlap. Add aconcurrencyblock (withgroup) to serialize or automatically cancel in-flight merge jobs to prevent race conditions.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: armhf
- GitHub Check: arm64
🔇 Additional comments (3)
.github/workflows/build.yml (3)
13-13: Dynamic job name improves clarity.
This change makes the build job display the architecture name, which enhances readability in the workflow UI.
32-32: Ensure shallow clone depth meets build requirements.
Settingfetch-depth: 1speeds up checkout but may omit tags or history used by thebuild-deb-actionor other scripts. Verify that the build does not rely on full history or tags before committing this change.
56-62: Upload artifacts per architecture.
The upload-artifact step correctly scopes artifacts to eachmatrix.architecture, ensuring builds remain isolated. Theif-no-files-found: ignoreguard is also a good touch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/build.yml (1)
13-13: Set dynamic job name—consider more descriptive naming
The job name is now set to\${{ matrix.architecture }}, which clearly shows the target architecture. For readability in workflows with many jobs, you might prefix it—for example:name: Build ${{ matrix.architecture }}
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: arm64
- GitHub Check: armhf
🔇 Additional comments (5)
.github/workflows/build.yml (5)
32-32: Shallow checkout for build stage
Reducingfetch-depthto 1 speeds up the checkout and is safe since you only need the latest commit for package building.
44-44: Pin Debian testing image with fixed date
Locking todebian:testing-20250407ensures consistency across architectures. This aligns with the need to use Debian testing due to missing support in the stable release.
56-62: Artifact upload configuration looks solid
Uploading artifacts per architecture withif-no-files-found: ignorehandles cases where no packages are produced (e.g.,allincludes multiple arches).
63-78: Merge job implementation and checkout ondatabranch
The newmergejob correctly:
- Waits for all
build-debsmatrix runs (needs: build-debs).- Checks out the
databranch with full history (fetch-depth: 0).- Downloads and merges all
artifacts-*uploads.- Commits and pushes only when there are changes.
Ensure that
${{ secrets.GITHUB_TOKEN }}has push rights on thedatabranch.
24-27:❓ Verification inconclusive
Validate runner labels for RISC‑V and ARM64
ubuntu-24.04-armis correct for ARM64 (public preview), but Actionlint flags it as unknown; if this is a self‑hosted runner, update youractionlint.yamlto include that label.- GitHub does not offer a Hosted RISC‑V runner. Using
ubuntu-latestwill execute on x64. If you need riscv64 builds, you must register a self‑hosted runner and use its label (e.g.,self-hostedor a customriscv64label).Run this to list your configured self-hosted runner labels:
🏁 Script executed:
#!/bin/bash gh api /repos/${GITHUB_REPOSITORY}/actions/runners | jq '.runners[].labels[].name'Length of output: 147
Validate and correct workflow runner labels
In.github/workflows/build.yml(lines 24–27):- architecture: arm64 runner: ubuntu-24.04-arm - architecture: riscv64 runner: ubuntu-latest
ubuntu-24.04-armis valid for ARM64 (public preview). If Actionlint flags it, add this label to youractionlint.yaml.- GitHub does not offer a hosted RISC‑V runner—
ubuntu-latestfalls back to x64. To build for riscv64, register a self‑hosted runner and use its custom label (e.g.,self-hostedorriscv64).Please verify your self-hosted runner labels (ensure
ghis authenticated and replaceOWNER/REPO):gh api /repos/OWNER/REPO/actions/runners --jq '.runners[].labels[].name'Confirm you see the expected ARM64 and RISC‑V labels.
🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/build.yml (1)
81-82: Optional: make orphan-branch creation idempotent
Currently you always rungit checkout --orphan data, which works but can be confusing ifdataalready exists. Consider switching to the existing branch if present:- git checkout --orphan data + git rev-parse --verify data \ + && git checkout data \ + || git checkout --orphan data
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: arm64
- GitHub Check: armhf
🔇 Additional comments (7)
.github/workflows/build.yml (7)
13-13: Dynamic job naming improves clarity
Renaming the job to${{ matrix.architecture }}instead of the runner label makes it immediately clear which architecture is being built.
24-27: Verify runner labels for new architectures
You’ve addedarm64andriscv64to the matrix withubuntu-24.04-armandubuntu-latestrespectively. According to actionlint,ubuntu-24.04-armis not a known GitHub‑hosted label and there is no hosted RISC‑V runner.
- If you intend to use self‑hosted runners, ensure the labels (e.g.,
self-hosted,riscv64,linux) are correctly registered.- Otherwise, switch to valid GitHub‑hosted labels or set up QEMU cross‑build support.
🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
32-32: Confirm fetch-depth reduction is safe
You’ve setfetch-depth: 1on the checkout step to speed up clone times. Make sure no part of the build (tags, history-based versioning, reprepro metadata) relies on full history.
44-44: Pinning Debian testing image is appropriate
Switching todebian:testing-20250407addresses the issue that stable doesn’t supportriscv64. Pinning to a fixed tag locks in a known-good build environment.
56-62: Review artifact upload behavior
Uploadingdebian/artifacts/per architecture is a solid approach. However,if-no-files-found: ignoremay mask failures for certain arches. Confirm that skipping missing artifacts is intentional and won’t lead to silent data loss in the merge step.
63-78: Merge job correctly aggregates artifacts
The newmergejob cleanly downloads allartifacts-*uploads withmerge-multiple: trueand prepares them for publishing. The dependency onbuild-debsand the use offetch-depth: 0ensure you have full history when creating the orphan branch.
88-88: Conditional commit logic is correct
Usinggit diff --cached --quiet || git commit --allow-emptyensures that you only create a commit when there are actual changes. This avoids unnecessary empty commits on repeated runs.
|
Thank you for your work, @igorpecovnik. Please drop the change to the README. I prefer the way it is currently. It is simpler to read. I understand you want to use the proper, new format but we ship that with armbian-common. If you want we might remove /etc/apt/sources.list.d/armbian-apa.list if present from armbian-common via postinst. That sounds like a good idea, but let's not overload this PR, please. |
leggewie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please drop this commit as per the reason given in the comment. At the very least, take it out of this PR for later merge if you believe it should be included.
leggewie
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merge this with the previous commit that it partially reverts?
The problem with sources is that it won't work this way. When using latest Armbian (auto test image), it says that it can't find the key, but works this way). Also if this is placed to plain Debian (not Armbian), a key needs to be installed. That's the reason I have fixed this. |
|
I moved readme changes to separate PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
.github/workflows/build.yml (1)
24-27:⚠️ Potential issueInvalid runner for riscv64 architecture.
GitHub does not provide a hosted RISC‑V runner underubuntu-latest. This configuration will execute theriscv64build on an x86_64 machine, leading to build errors or incorrect packages. You must register and reference a self‑hosted RISC‑V runner (e.g., labelself-hosted && riscv64) or implement QEMU-based cross-building within the container.🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🧹 Nitpick comments (4)
.github/workflows/build.yml (4)
13-13: Ensure job naming is descriptive.
The current job name uses only the architecture (${{ matrix.architecture }}), which can be ambiguous in the Actions UI. Consider prefixing it (for example,name: Build [${{ matrix.architecture }}]) to make it clear which job is running.
44-44: Pinneddebian:testingimage for reproducibility.
Locking the build container todebian:testing-20250407ensures consistent build environments. Consider documenting or automating a regular schedule to update this date to pull in new dependency updates.
63-66: Prevent concurrent merges todatabranch.
Parallel workflow runs may overwrite thedatabranch if they collide. Consider adding aconcurrencyblock to serialize merge jobs. For example:jobs: - merge: + merge: name: "Merge artifacts" needs: build-debs runs-on: ubuntu-latest + concurrency: + group: 'merge-artifacts' + cancel-in-progress: false
87-88: Use safer force-push semantics.
Replacing--forcewith--force-with-leasehelps prevent accidental overwrites if the remotedatabranch changes unexpectedly. For example:- git push --force --set-upstream origin data + git push --force-with-lease --set-upstream origin data
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/build.yml(4 hunks)
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🔇 Additional comments (5)
.github/workflows/build.yml (5)
32-32: Verify shallow clone depth.
Switching tofetch-depth: 1speeds up the checkout but may omit tags or history used bydpkg-buildpackageor release scripts. Confirm that no tooling in the build relies on git history beyond the latest commit.
56-61: Upload artifacts correctly configured.
The artifact step names uploads by architecture and gracefully ignores missing files. This matches the multi‑arch strategy and requires no changes.
68-71: Checkout strategy is sound.
Usingactions/checkout@v4withfetch-depth: 0provides the full repository history needed for the orphan branch creation. No issues detected here.
72-77: Artifacts download and merge configured correctly.
Theactions/download-artifactstep usesmerge-multiple: truewith the proper pattern to aggregate all architectures. This aligns with the intended behavior.
80-81: Orphan branch creation is appropriate.
Usinggit checkout --orphan datafollowed bygit rm -rf --cached .cleanly resets the index for the new branch. This effectively drops history as intended.
OK, thank you for the explanation. Let's look into this in your other PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/build.yml (1)
44-44: Pin the build image for reproducibility
Consider using an immutable digest instead of a floating tag so future changes todebian:testing-20250407don’t break your builds unexpectedly. For example:- docker-image: debian:testing-20250407 + docker-image: debian@sha256:<insert-specific-digest-here>
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.github/workflows/build.yml(4 hunks)debian/artifacts/conf/distributions(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- debian/artifacts/conf/distributions
🧰 Additional context used
🪛 actionlint (1.7.4)
.github/workflows/build.yml
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
🔇 Additional comments (7)
.github/workflows/build.yml (7)
12-13: Use descriptive job names based on architecture
Setting the jobnameto${{ matrix.architecture }}makes it much easier to distinguish build runs in the Actions UI.
32-32: Fetch only the latest commit for speed
Usingfetch-depth: 1greatly reduces clone time and is sufficient for package builds; full history is fetched later in the merge job.
56-61: Upload built artifacts per architecture
Theactions/upload-artifactstep correctly names each artifact folder by architecture and ignores missing files—good for matrix builds.
68-71: Merge job: checkout at full depth
Fetching full history (fetch-depth: 0) is appropriate here since you’re creating an orphan branch and need to clear the index cache.
72-77: Download and merge artifacts
Usingpattern: artifacts-*withmerge-multiple: trueconsolidates all architecture artifacts into a single directory—neat and efficient.
80-88: Commit and push updated data branch
The orphan-branch workflow, staged-diff check, and force-push ensure thedatabranch contains only the latest build outputs. Solid implementation.
24-27:❓ Verification inconclusive
Verify runner labels for ARM64 and RISC‑V
The matrix assignsubuntu-24.04-armforarm64andubuntu-latestforriscv64. Ensure these labels exist and are appropriate:
- GitHub‑hosted ARM64 runners support
ubuntu-24.04-arm(public preview), but you must confirm availability in your organization.- There is no official GitHub‑hosted RISC‑V runner. For
riscv64builds, you’ll need to register and reference a self‑hosted runner (e.g., label itriscv64orself-hosted,riscv64).Also update your
actionlintconfiguration if you’re using custom runner labels.
Verify runner labels for ARM64 and RISC‑V
In
.github/workflows/build.yml(lines 24–27):
- ARM64: You’ve specified
ubuntu-24.04-arm, which is currently in public preview. Confirm it’s enabled and available in your organization.- RISC‑V: There is no GitHub‑hosted
riscv64runner underubuntu-latest. You’ll need to register or use a self‑hosted runner (for example, label itself-hosted,riscv64).If you use
actionlint, update its configuration to recognize any custom runner labels you add.🧰 Tools
🪛 actionlint (1.7.4)
25-25: label "ubuntu-24.04-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2022", "windows-2019", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-22.04", "ubuntu-20.04", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "macos-12-xl", "macos-12-xlarge", "macos-12-large", "macos-12", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
datarepository to retain only latest filesClosing #12
Closing #11
Closing #6