mirror of
https://github.com/wimpysworld/stream-sprout
synced 2026-03-14 14:45:50 +01:00
ci: add release workflow and update docs
This commit is contained in:
parent
c8bed71c4a
commit
040d5f7ba9
3 changed files with 103 additions and 6 deletions
81
.github/workflows/publish-release.yml
vendored
Normal file
81
.github/workflows/publish-release.yml
vendored
Normal 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 }}"
|
||||
26
README.md
26
README.md
|
|
@ -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
|
||||
[](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
2
debian/control
vendored
|
|
@ -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.
|
||||
.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue