-
-
Notifications
You must be signed in to change notification settings - Fork 1
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-20250407
to thebuild-deb-action
. Verify that:
jtdor/build-deb-action@v1
supports adocker-image
input.- The
testing-20250407
tag 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 thename
field 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
arm64
andriscv64
to the matrix with runnersubuntu-24.04-arm
andubuntu-latest
. Please make sure:
- A self‑hosted runner labeled
ubuntu-24.04-arm
is registered and online for botharmhf
andarm64
.ubuntu-latest
actually supportsriscv64
or 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 thename
is set to${{ matrix.architecture }}
which will showall
for the amd64 builds. Consider displaying the actual host‐arch (e.g.,amd64
whenmatrix.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-arm
isn’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-20250407
ensures 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@v4
withif-no-files-found: ignore
is a solid approach to collect build outputs without failing when certain matrix runs produce nothing.
63-73
: Merge artifacts into a single repository
The newmerge
job 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-20250407
fixes 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.
Themerge
job pushes to a shareddata
branch and may conflict if multiple workflow runs overlap. Add aconcurrency
block (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: 1
speeds up checkout but may omit tags or history used by thebuild-deb-action
or 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: ignore
guard 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-depth
to 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-20250407
ensures 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: ignore
handles cases where no packages are produced (e.g.,all
includes multiple arches).
63-78
: Merge job implementation and checkout ondata
branch
The newmerge
job correctly:
- Waits for all
build-debs
matrix runs (needs: build-debs
).- Checks out the
data
branch 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 thedata
branch.
24-27
:❓ Verification inconclusive
Validate runner labels for RISC‑V and ARM64
ubuntu-24.04-arm
is correct for ARM64 (public preview), but Actionlint flags it as unknown; if this is a self‑hosted runner, update youractionlint.yaml
to include that label.- GitHub does not offer a Hosted RISC‑V runner. Using
ubuntu-latest
will execute on x64. If you need riscv64 builds, you must register a self‑hosted runner and use its label (e.g.,self-hosted
or a customriscv64
label).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-arm
is 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-latest
falls back to x64. To build for riscv64, register a self‑hosted runner and use its custom label (e.g.,self-hosted
orriscv64
).Please verify your self-hosted runner labels (ensure
gh
is 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 ifdata
already 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 addedarm64
andriscv64
to the matrix withubuntu-24.04-arm
andubuntu-latest
respectively. According to actionlint,ubuntu-24.04-arm
is 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: 1
on 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-20250407
addresses 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: ignore
may 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 newmerge
job cleanly downloads allartifacts-*
uploads withmerge-multiple: true
and prepares them for publishing. The dependency onbuild-debs
and the use offetch-depth: 0
ensure you have full history when creating the orphan branch.
88-88
: Conditional commit logic is correct
Usinggit diff --cached --quiet || git commit --allow-empty
ensures 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. |
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.
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 theriscv64
build 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:testing
image for reproducibility.
Locking the build container todebian:testing-20250407
ensures 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 todata
branch.
Parallel workflow runs may overwrite thedata
branch if they collide. Consider adding aconcurrency
block 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--force
with--force-with-lease
helps prevent accidental overwrites if the remotedata
branch 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: 1
speeds up the checkout but may omit tags or history used bydpkg-buildpackage
or 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@v4
withfetch-depth: 0
provides the full repository history needed for the orphan branch creation. No issues detected here.
72-77
: Artifacts download and merge configured correctly.
Theactions/download-artifact
step usesmerge-multiple: true
with the proper pattern to aggregate all architectures. This aligns with the intended behavior.
80-81
: Orphan branch creation is appropriate.
Usinggit checkout --orphan data
followed 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-20250407
don’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 jobname
to${{ 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: 1
greatly 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-artifact
step 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: true
consolidates 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 thedata
branch 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-arm
forarm64
andubuntu-latest
forriscv64
. 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
riscv64
builds, you’ll need to register and reference a self‑hosted runner (e.g., label itriscv64
orself-hosted,riscv64
).Also update your
actionlint
configuration 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
riscv64
runner 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)
data
repository to retain only latest filesClosing #12
Closing #11
Closing #6