This PR adds support for producing multi-arch artifacts based on the implementation of the jammy-tiny-stack.
Supports:
ubuntu, ubi or any other stack that might be introduced in the future. This is feasible due to the poll_images job that iterates over the hash codes.
It does not change the default behavior of the create-release workflow.
It does not break when a new architecture is introduced.
The amd64 keyword is not included in the artifacts. E.g. the jammy-tiny-stack-0.2.53-amd64-run-receipt.cyclonedx.json will be on the artifacts with the name jammy-tiny-stack-0.2.53-run-receipt.cyclonedx.json. This is a choice to support the existing naming convention for the amd64 files so as not to break any backward compatibility.
In case of more than one architecture is included on the stack.toml, the release notes are included on the artifacts and not on the release description, similar to what jammy-tiny-stack implementation does.
This PR has been tested various times on multiple repositories, although issues might arise. Therefore, I'm committed to watching for any errors and immediately opening a PR to fix them.
Use Cases
Produces Multi-architecture releases based on what is declared on the stack.toml.
Due to the current tag workflow not producing any arm64 assets, in order for the workflow to run, the below instructions have to be followed in order for the workflow not to break.
Merge the PR without squashing the commits.
remove the local tag on your machine
git tag -d v0.0.3
tag the commit where the architecture is only one on the stack.toml . Is the commit with the name removing arm64
git tag v0.0.3
push the tag on the remote
git push -f origin v0.0.3
This is necessary, as the workflow checks if the arch already exists based on the last tag, and in that case it will search for the corresponding artifacts. In that case, this repo does not have any arm64 artifacts, and therefore it breaks.
Checklist
[x] I have viewed, signed, and submitted the Contributor License Agreement.
[ ] I have linked issue(s) that this PR should close using keywords or the Github UI (See docs)
[x] I have added an integration test, if necessary.
[x] I have reviewed the styleguide for guidance on my code quality.
[x] I'm happy with the commit history on this PR (I have rebased/squashed as needed).
Merge After
Summary
This PR adds support for producing multi-arch artifacts based on the implementation of the jammy-tiny-stack.
Supports:
amd64
keyword is not included in the artifacts. E.g. thejammy-tiny-stack-0.2.53-amd64-run-receipt.cyclonedx.json
will be on the artifacts with the namejammy-tiny-stack-0.2.53-run-receipt.cyclonedx.json
. This is a choice to support the existing naming convention for theamd64
files so as not to break any backward compatibility.stack.toml
, the release notes are included on the artifacts and not on the release description, similar to whatjammy-tiny-stack
implementation does.This PR has been tested various times on multiple repositories, although issues might arise. Therefore, I'm committed to watching for any errors and immediately opening a PR to fix them.
Use Cases
Produces Multi-architecture releases based on what is declared on the
stack.toml
.Sample output of the release notes.
Instructions on how to merge
Due to the current tag workflow not producing any arm64 assets, in order for the workflow to run, the below instructions have to be followed in order for the workflow not to break.
Merge the PR without squashing the commits.
remove the local tag on your machine
git tag -d v0.0.3
tag the commit where the architecture is only one on the
stack.toml
. Is the commit with the nameremoving arm64
git tag v0.0.3
git push -f origin v0.0.3
This is necessary, as the workflow checks if the arch already exists based on the last tag, and in that case it will search for the corresponding artifacts. In that case, this repo does not have any arm64 artifacts, and therefore it breaks.
Checklist