Build and release a Debian package in a separate job
Check, lint and test using Cargo / Check, lint and test (push) Failing after 3m34s Details

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 20:14:54 +02:00
parent 47e28a7098
commit 4b506541f3
Signed by: paul
GPG Key ID: C6DE073EDA9EEC4D
1 changed files with 49 additions and 19 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,11 +42,12 @@ 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/sinoptik*.deb files: FIXME
title: 'Release ${{ env.VERSION }}' title: 'Release ${{ env.VERSION }}'
body: '${{ env.RELEASE_NOTES }}'
release-crate: release-crate:
name: "Release crate" name: "Release Rust crate"
runs-on: debian-latest runs-on: debian-latest
steps: steps:
- name: Checkout sources - name: Checkout sources
@ -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/sandbox*.deb \
https://git.luon.net/api/packages/paul/debian/pool/bookworm/main/upload