diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..f1a2f1d --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -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 }}" diff --git a/README.md b/README.md index 3d42f34..c8f9a04 100644 --- a/README.md +++ b/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 Tux (Linux) & Apple (macOS)** @@ -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: + +- + +## 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 diff --git a/debian/control b/debian/control index 13858e0..5ee48a3 100644 --- a/debian/control +++ b/debian/control @@ -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. .