From 64ee93c553c173467f349ddfed8159b43883bb5e Mon Sep 17 00:00:00 2001 From: Paul van Tilburg Date: Fri, 25 Aug 2023 22:06:41 +0200 Subject: [PATCH] Build and release a Debian package in a separate job Release it to the package repository instead of attaching to the release. Also add the relevant part of the changelog as release notes to the release and fix some schema-related issues. --- .gitea/workflows/release.yml | 66 ++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d6b38d2..829206a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -2,7 +2,8 @@ name: "Release" on: push: - tags: "v*" + tags: + - "v*" jobs: release: @@ -20,22 +21,16 @@ jobs: echo "Releasing version: $VERSION" echo "VERSION=$VERSION" >> $GITHUB_ENV - - name: Install Rust stable toolchain - uses: https://github.com/actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - name: Install cargo-deb - uses: https://github.com/brndnmtthws/rust-action-cargo-binstall@v1 - with: - packages: cargo-deb - - - name: Run cargo-deb - uses: https://github.com/actions-rs/cargo@v1 - with: - command: deb + - name: Get the release notes from the changelog + run: | + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) + RELEASE_NOTES=$(sed -n -e "/^## \[$VERSION\]/,/^## \[/{//"'!'"p;}" CHANGELOG.md | sed -e '1d;$d') + echo "Release notes:" + echo + echo "$RELEASE_NOTES" + echo "RELEASE_NOTES<<$EOF" >> "$GITHUB_ENV" + echo "$RELEASE_NOTES" >> "$GITHUB_ENV" + echo "$EOF" >> "$GITHUB_ENV" - name: Install Go uses: actions/setup-go@v4 @@ -47,8 +42,9 @@ jobs: with: # This is available by default. api_key: '${{ secrets.RELEASE_TOKEN }}' - files: target/debian/podbringer*.deb + files: FIXME title: 'Release ${{ env.VERSION }}' + body: '${{ env.RELEASE_NOTES }}' release-crate: name: "Release crate" @@ -80,3 +76,37 @@ jobs: with: command: publish args: --registry luon + + release-deb: + name: "Release Debian package" + runs-on: debian-latest + steps: + - name: Checkout sources + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Rust stable toolchain + uses: https://github.com/actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Install cargo-deb + uses: https://github.com/brndnmtthws/rust-action-cargo-binstall@v1 + with: + packages: cargo-deb + + - name: Run cargo-deb + uses: https://github.com/actions-rs/cargo@v1 + with: + command: deb + + - name: Publish Debian package + env: + DEB_REPO_TOKEN: '${{ secrets.DEB_REPO_TOKEN }}' + run: | + curl --config <(printf "user=%s:%s" paul "${DEB_REPO_TOKEN}") \ + --upload-file target/debian/podbringer*.deb \ + https://git.luon.net/api/packages/paul/debian/pool/bookworm/main/upload