diff options
author | Chris Evich <cevich@redhat.com> | 2021-09-09 13:46:21 -0400 |
---|---|---|
committer | Chris Evich <cevich@redhat.com> | 2021-09-21 14:34:30 -0400 |
commit | 319fcf52fc5eaa3a83c4a152405910a5b516f89a (patch) | |
tree | ca48a18b2a8c52b3a5b3265857638729b2dd45cc /RELEASE_PROCESS.md | |
parent | cd7b48198c38c5028540e85dc72dd3406f4318f0 (diff) | |
download | podman-319fcf52fc5eaa3a83c4a152405910a5b516f89a.tar.gz podman-319fcf52fc5eaa3a83c4a152405910a5b516f89a.tar.bz2 podman-319fcf52fc5eaa3a83c4a152405910a5b516f89a.zip |
Cross-build release-archives w/ arch in filename
Fixes #11417
Cross-building the podman-remote documentation requires a functional
native architecture executable. However `make` only deals with
files/timestamps, it doesn't understand if an existing binary will
function on the system or not. This makes building cross-platform
releases incredibly accident-prone and fragile.
A practical way to deal with this, is via multiple conditional (nested)
`make` calls along with careful manipulation of `$GOOS` and `$GOARCH`.
Also, when cross-building releases be kind to humans and cleanup
any non-native binaries left behind.
Update the `Alt Arch. Cross` Cirrus-CI task to build release archives
for all Linux architectures supported by golang and podman. Update
the `OSX Cross` task to additionally build for the M1 (arm64)
architecture.
Finally, update the release process documentation to reflect the
new locations (Cirrus-CI task names) for the release archives. Include
a note about additional manual work being required to produce the
signed `.dmg` file for MacOS.
Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to 'RELEASE_PROCESS.md')
-rw-r--r-- | RELEASE_PROCESS.md | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index bdf8aca88..32d4c039e 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -234,16 +234,24 @@ spelled with complete minutiae. 1. Return to the Cirrus-CI Build page for the new release tag, confirm (or wait for) it to complete, re-running any failed tasks as appropriate. - 1. For anything other than an RC, download the new release artifacts - (the binaries which were actually tested). Visit each of the - "Build for ...", "Static Build", and "... Cross" tasks. - 1. Under the "Artifacts" section of each task, click the "gosrc" item, + 1. For anything other than an RC, download the new release artifacts from CI + (the binaries which were actually tested). The items are + located under the *checks* tab in github for: + + * `Cirrus CI / Alt Arch. Cross` - tarball for each architecture + * `Cirrus CI / OSX Cross` - two zip files (amd64 and arm64) + * `Cirrus CI / Windows Cross` - an `msi` file + * `Cirrus CI / Static Build` - the `bin/podman-remote` file + + Under the "Artifacts" section of each task, click the "gosrc" link, find and download the release archive (`zip`, `tar.gz` or `.msi`). Save the the archive with a meaningful name, for example `podman-v3.0.0.msi`. 1. For the "Static Build" task, find the compiled `podman` and `podman-remote` - binaries under the "binary", "bin" links. Tar these files as + binaries under the "binary", then "bin" links. Tar these files as `podman-static.tar.gz`. + 1. The `podman-vX.Y.Z.dmg` file is produced manually by someone in + posession of a developer signing key. 1. In the directory where you downloaded the archives, run `sha256sum *.tar.gz *.zip *.msi > shasums` to generate SHA sums. 1. Go to `https://github.com/containers/podman/releases/tag/vX.Y.Z` and |