Release #22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'Version (SemVer)' | |
required: true | |
default: 0.0.0 | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
update-version: | |
name: Update version | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v5 | |
with: | |
fetch-depth: 0 | |
token: ${{ secrets.BOT_TOKEN }} | |
- name: Install cargo-edit | |
run: cargo install cargo-edit | |
- name: Update package version | |
run: cargo set-version ${{ github.event.inputs.version }} | |
- name: Upload working directory with current version-number | |
uses: actions/upload-artifact@v4 | |
with: | |
name: versioned-build | |
include-hidden-files: true | |
path: . | |
retention-days: 1 | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
needs: [update-version] | |
steps: | |
- name: Download working directory with current version-number | |
uses: actions/download-artifact@v5 | |
with: | |
name: versioned-build | |
path: . | |
- name: Build binary | |
run: cargo build --release | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-artifact | |
include-hidden-files: true | |
path: . | |
retention-days: 1 | |
update-metadata: | |
name: Update metadata | |
runs-on: ubuntu-latest | |
needs: [update-version] | |
steps: | |
- name: Download build artifacts | |
uses: actions/download-artifact@v5 | |
with: | |
name: versioned-build | |
- name: Generate tarball from current repo | |
run: | | |
VERSION=${{ github.event.inputs.version }} | |
git archive --format=tar.gz -o tiny4linux-${VERSION}.tar.gz HEAD | |
git archive --format=zip -o tiny4linux-${VERSION}.zip HEAD | |
- name: Update PKGBUILD & SRCINFO with new version and SHA | |
run: | | |
VERSION=${{ github.event.inputs.version }} | |
sha=$(sha256sum tiny4linux-${VERSION}.tar.gz | cut -d' ' -f1) | |
cd deployment/gui/aur | |
sed -i "s/^pkgver=.*/pkgver=${VERSION}/" PKGBUILD | |
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD | |
sed -i "s/^sha256sums=.*/sha256sums=('${sha}')/" PKGBUILD | |
# Write-Permissions for Container-User | |
chmod -R 777 . | |
docker run --rm -v $PWD:/pkg archlinux:latest bash -c " | |
pacman -Sy --noconfirm base-devel sudo && | |
cd /pkg && | |
makepkg --printsrcinfo > .SRCINFO | |
chown $(id -u):$(id -g) .SRCINFO | |
" | |
- name: Upload tarballs and metadata | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tarballs | |
include-hidden-files: true | |
path: | | |
tiny4linux-${{ github.event.inputs.version }}.tar.gz | |
tiny4linux-${{ github.event.inputs.version }}.zip | |
deployment/gui/aur/PKGBUILD | |
deployment/gui/aur/.SRCINFO | |
deployment/gui/aur/LICENSE | |
retention-days: 1 | |
add-version-commit: | |
name: Add version commit | |
runs-on: ubuntu-latest | |
needs: [update-version, update-metadata] | |
steps: | |
- name: Download working directory with current version-number | |
uses: actions/download-artifact@v5 | |
with: | |
name: versioned-build | |
path: . | |
- name: Download updated metadata | |
uses: actions/download-artifact@v5 | |
with: | |
name: tarballs | |
path: . | |
- name: Add a commit | |
run: | | |
git config --global user.name 'OpenFoxes Maintenance Bot' | |
git config --global user.email '[email protected]' | |
git init | |
git add . | |
git commit -m "🔖 Release Tiny4Linux ${{ github.event.inputs.version }}" | |
git tag v${{ github.event.inputs.version }} | |
git push -u origin HEAD:main --tags | |
create-github-release: | |
name: 'Create GitHub release' | |
runs-on: ubuntu-latest | |
needs: [build, update-metadata, add-version-commit] | |
steps: | |
- name: Download build artifacts | |
uses: actions/download-artifact@v5 | |
with: | |
name: build-artifact | |
path: . | |
- name: Download metadata | |
uses: actions/download-artifact@v5 | |
with: | |
name: tarballs | |
path: . | |
- uses: softprops/action-gh-release@v2 | |
with: | |
token: ${{ secrets.BOT_TOKEN }} | |
name: Version ${{ github.event.inputs.version }} | |
tag_name: v${{ github.event.inputs.version }} | |
files: | | |
target/release/obsbot-gui | |
target/release/obsbot-osc-server | |
tiny4linux-${{ github.event.inputs.version }}.tar.gz | |
tiny4linux-${{ github.event.inputs.version }}.zip | |
deploy-aur: | |
name: 'Deployment to AUR' | |
runs-on: ubuntu-latest | |
needs: [create-github-release] | |
steps: | |
- name: Setup SSH for AUR | |
run: | | |
mkdir -p ~/.ssh | |
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 | |
chmod 600 ~/.ssh/id_ed25519 | |
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts | |
- name: Clone AUR repository | |
run: | | |
git clone ssh://[email protected]/tiny4linux-gui.git aur-repo | |
- name: Download packed tarballs and metadata | |
uses: actions/download-artifact@v5 | |
with: | |
name: tarballs | |
path: aur-repo | |
- name: Commit & Push to the AUR | |
working-directory: aur-repo | |
run: | | |
cd deployment/gui/aur | |
git config user.name "OpenFoxes Maintenance Bot" | |
git config user.email "[email protected]" | |
git add PKGBUILD .SRCINFO LICENSE | |
git commit -m "Update to Version ${{ github.event.inputs.version }}" | |
git push | |
cleanup: | |
name: Cleanup | |
runs-on: ubuntu-latest | |
needs: [deploy-aur] | |
steps: | |
- name: Delete artifacts | |
uses: geekyeggo/delete-artifact@v5 | |
with: | |
name: | | |
versioned-build | |
build-artifact | |
tarballs |