Skip to content

Merge pull request #2226 from kolyshkin/fix-2194 #5499

Merge pull request #2226 from kolyshkin/fix-2194

Merge pull request #2226 from kolyshkin/fix-2194 #5499

Workflow file for this run

name: Artifact
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
artifact:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/cache@v6
with:
path: .cache
key: nix-v2-${{ hashFiles('flake.lock') }}
- run: sudo apt-get update
- run: sudo apt-get install -y make git gcc build-essential pkgconf libtool libsystemd-dev libcap-dev libseccomp-dev go-md2man libtool autoconf python3 automake libprotobuf-c-dev libjson-c-dev
- run: |
set -ex
sudo mkdir -p .cache
sudo mv .cache /nix
if [[ -z $(ls -A /nix) ]]; then sudo docker run --rm --privileged -v /:/mnt nixos/nix:2.35.1 cp -rfT /nix /mnt/nix; fi
sudo RUNTIME=docker SKIP_CHECKS=1 SKIP_GPG=1 build-aux/release.sh
sudo mv /nix .cache
sudo chown -Rf $(whoami) .cache
- run: |
sudo mv release-* /tmp/artifact
for ARCH in amd64 arm64 ppc64le riscv64 s390x; do
sudo mv /tmp/artifact/crun-*-linux-${ARCH} /tmp/artifact/crun-linux-${ARCH}
sudo mv /tmp/artifact/crun-*-linux-${ARCH}-disable-systemd /tmp/artifact/crun-linux-${ARCH}-disable-systemd
done
sudo mv /tmp/artifact/*.tar.gz /tmp/artifact/crun.tar.gz
sudo mv /tmp/artifact/*.tar.zst /tmp/artifact/crun.tar.zst
(cd /tmp/artifact; sha256sum * | sudo tee CHECKSUMS)
- uses: actions/upload-artifact@v7
with:
name: crun-linux-amd64
path: /tmp/artifact/crun-linux-amd64
- uses: actions/upload-artifact@v7
with:
name: crun-linux-amd64-disable-systemd
path: /tmp/artifact/crun-linux-amd64-disable-systemd
- uses: actions/upload-artifact@v7
with:
name: crun-linux-arm64
path: /tmp/artifact/crun-linux-arm64
- uses: actions/upload-artifact@v7
with:
name: crun-linux-arm64-disable-systemd
path: /tmp/artifact/crun-linux-arm64-disable-systemd
- uses: actions/upload-artifact@v7
with:
name: crun-linux-ppc64le
path: /tmp/artifact/crun-linux-ppc64le
- uses: actions/upload-artifact@v7
with:
name: crun-linux-ppc64le-disable-systemd
path: /tmp/artifact/crun-linux-ppc64le-disable-systemd
- uses: actions/upload-artifact@v7
with:
name: crun-linux-riscv64
path: /tmp/artifact/crun-linux-riscv64
- uses: actions/upload-artifact@v7
with:
name: crun-linux-riscv64-disable-systemd
path: /tmp/artifact/crun-linux-riscv64-disable-systemd
- uses: actions/upload-artifact@v7
with:
name: crun-linux-s390x
path: /tmp/artifact/crun-linux-s390x
- uses: actions/upload-artifact@v7
with:
name: crun-linux-s390x-disable-systemd
path: /tmp/artifact/crun-linux-s390x-disable-systemd
- uses: actions/upload-artifact@v7
with:
name: crun.tar.gz
path: /tmp/artifact/crun.tar.gz
- uses: actions/upload-artifact@v7
with:
name: crun.tar.zst
path: /tmp/artifact/crun.tar.zst
- uses: actions/upload-artifact@v7
with:
name: CHECKSUMS
path: /tmp/artifact/CHECKSUMS
release:
needs: artifact
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: actions/download-artifact@v8
with:
path: artifacts
merge-multiple: true
- name: Assemble release assets
run: |
set -ex
VERSION="${GITHUB_REF_NAME}"
mkdir -p release
for ARCH in amd64 arm64 ppc64le riscv64 s390x; do
mv "artifacts/crun-linux-${ARCH}" "release/crun-${VERSION}-linux-${ARCH}"
mv "artifacts/crun-linux-${ARCH}-disable-systemd" "release/crun-${VERSION}-linux-${ARCH}-disable-systemd"
done
mv artifacts/crun.tar.gz "release/crun-${VERSION}.tar.gz"
mv artifacts/crun.tar.zst "release/crun-${VERSION}.tar.zst"
(cd release && sha256sum -- * > CHECKSUMS)
- name: Extract release notes from NEWS
run: |
awk -v hdr="* crun-${GITHUB_REF_NAME}" '
$0 == hdr { capture = 1; next }
capture && /^\* crun-/ { exit }
capture { print }
' NEWS > release-notes.md
if ! grep -q '[^[:space:]]' release-notes.md; then
echo "no '* crun-${GITHUB_REF_NAME}' section found in NEWS" >&2
exit 1
fi
cat release-notes.md
- name: Create draft release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${GITHUB_REF_NAME}" \
--draft \
--title "crun ${GITHUB_REF_NAME}" \
--notes-file release-notes.md \
release/*