ci: add release workflow and update docs

This commit is contained in:
Martin Wimpress 2024-07-22 14:31:05 +01:00 committed by Martin Wimpress
commit 040d5f7ba9
3 changed files with 103 additions and 6 deletions

81
.github/workflows/publish-release.yml vendored Normal file
View file

@ -0,0 +1,81 @@
name: Publish Release 🏷️
on:
push:
tags:
- "v?[0-9]+.[0-9]+.[0-9]+*"
workflow_dispatch:
inputs:
tag:
description: "The existing tag to publish"
type: "string"
required: true
jobs:
version-check:
name: "Check versions ⚖️"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "Compare App and Git versions 🟰"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
APP_VERSION=$(grep "^readonly VERSION" stream-sprout | cut -d'"' -f2)
GIT_VERSION=$(git describe --tags | cut -d'-' -f1)
echo "App version: ${REL_VERSION}"
echo "Git version: ${GIT_VERSION}"
if [ "${APP_VERSION}" != "${GIT_VERSION}" ]; then
echo "ERROR! Version mismatch.";
exit 1
fi
build-release:
needs: [version-check]
name: "Build Release 👨‍🔧"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: "Build .deb 🍥"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sudo apt-get -y update
sudo apt-get -y install debhelper devscripts
REL_VER=$(grep "^readonly VERSION" stream-sprout | cut -d'"' -f2)
rm debian/changelog
dch --package stream-sprout --newversion="${REL_VER}-1" --distribution=unstable "New upstream release." --create
dpkg-buildpackage --build=binary --no-check-builddeps --compression=gzip
- name: "Draft Release 📥️"
run: |
gh release create "${{ github.ref }}" --draft --generate-notes
- name: "Upload .deb ⤴️"
run: |
gh release upload "${{ github.ref }}" "../stream-sprout_${REL_VER}-1_all.deb" --clobber
- name: "Publish release 📤️"
run: |
if [ "$(gh release view "${{ github.ref }}" --json assets --template '{{len .assets}}')" -lt 0 ]; then
exit 1
fi
gh release edit "${{ github.ref }}" --draft=false
publish-flakehub:
needs: [version-check]
name: "Publish FlakeHub ❄️"
runs-on: "ubuntu-24.04"
permissions:
id-token: "write"
contents: "read"
steps:
- uses: "actions/checkout@v4"
with:
ref: "${{ (inputs.tag != null) && format('refs/tags/{0}', inputs.tag) || '' }}"
- uses: "DeterminateSystems/nix-installer-action@main"
- uses: "DeterminateSystems/magic-nix-cache-action@main"
- uses: "DeterminateSystems/flakehub-push@main"
with:
visibility: "public"
name: "wimpysworld/stream-sprout"
tag: "${{ inputs.tag }}"

View file

@ -3,7 +3,7 @@
# Stream Sprout
**Restream OBS Studio to multiple destinations with ease**
**Restream a video source to multiple destinations such as Twitch, YouTube, and Owncast.**
**Made with 💝 for <img src=".github/tux.png" align="top" width="24" alt="Tux (Linux)"/> & <img src=".github/apple.png" align="top" width="24" alt="Apple (macOS)"/>**
</div>
@ -29,17 +29,33 @@ Stream Sprout uses FFmpeg to re-stream a video source to multiple destinations s
## Installation
### Debian / Ubuntu
### Debian
- tbc
`yq` is available in bullseye-backports, bookworm, trixie and newer.
- Download the Stream Sprout .deb package from the [releases page]()
- Install it with `apt-get install ./stream-sprout_0.1.0-1_all.deb`.
### NixOS
- tbc
[![FlakeHub](https://img.shields.io/endpoint?url=https://flakehub.com/f/wimpysworld/stream-sprout/badge)](https://flakehub.com/flake/wimpysworld/stream-sprout)
Stable releases of Stream Sprout are published to FlakeHub for Nix users. See the flake on FlakeHub for more details:
- <https://flakehub.com/flake/wimpysworld/stream-sprout>
## Ubuntu 24.04 and newer
`yq` is available in Ubuntu 24.04 and newer.
- Download the Stream Sprout .deb package from the [releases page]()
- Install it with `apt-get install ./stream-sprout_0.1.0-1_all.deb`.
For Ubuntu versions earlier than 24.04 you can [install Stream Sprout from source](#from-source).
### From source
You need to have [FFmpeg](https://ffmpeg.org/) and [yq](https://github.com/mikefarah/yq) installed on your system.
You need to have [FFmpeg](https://ffmpeg.org/) and [yq](https://github.com/kislyuk/yq) installed on your system.
```bash
git clone https://github.com/wimpysworld/stream-sprout.git

2
debian/control vendored
View file

@ -19,7 +19,7 @@ Depends:
yq,
${misc:Depends},
${shlibs:Depends},
Description: Restream to multiple destinations with ease.
Description: Restream a video source to multiple destinations such as Twitch, YouTube, and Owncast.
Stream Sprout uses FFmpeg to re-stream a video source to multiple destinations
such as Twitch, YouTube, and Owncast.
.