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.
This commit is contained in:
Paul van Tilburg 2023-08-25 22:06:41 +02:00
parent 613d50bf30
commit 64ee93c553
Signed by: paul
GPG Key ID: C6DE073EDA9EEC4D
1 changed files with 48 additions and 18 deletions

View File

@ -2,7 +2,8 @@ name: "Release"
on: on:
push: push:
tags: "v*" tags:
- "v*"
jobs: jobs:
release: release:
@ -20,22 +21,16 @@ jobs:
echo "Releasing version: $VERSION" echo "Releasing version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Install Rust stable toolchain - name: Get the release notes from the changelog
uses: https://github.com/actions-rs/toolchain@v1 run: |
with: EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
profile: minimal RELEASE_NOTES=$(sed -n -e "/^## \[$VERSION\]/,/^## \[/{//"'!'"p;}" CHANGELOG.md | sed -e '1d;$d')
toolchain: stable echo "Release notes:"
override: true echo
echo "$RELEASE_NOTES"
- name: Install cargo-deb echo "RELEASE_NOTES<<$EOF" >> "$GITHUB_ENV"
uses: https://github.com/brndnmtthws/rust-action-cargo-binstall@v1 echo "$RELEASE_NOTES" >> "$GITHUB_ENV"
with: echo "$EOF" >> "$GITHUB_ENV"
packages: cargo-deb
- name: Run cargo-deb
uses: https://github.com/actions-rs/cargo@v1
with:
command: deb
- name: Install Go - name: Install Go
uses: actions/setup-go@v4 uses: actions/setup-go@v4
@ -47,8 +42,9 @@ jobs:
with: with:
# This is available by default. # This is available by default.
api_key: '${{ secrets.RELEASE_TOKEN }}' api_key: '${{ secrets.RELEASE_TOKEN }}'
files: target/debian/podbringer*.deb files: FIXME
title: 'Release ${{ env.VERSION }}' title: 'Release ${{ env.VERSION }}'
body: '${{ env.RELEASE_NOTES }}'
release-crate: release-crate:
name: "Release crate" name: "Release crate"
@ -80,3 +76,37 @@ jobs:
with: with:
command: publish command: publish
args: --registry luon 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