name: Release on: push: tags: - "v*" permissions: contents: write packages: write env: CARGO_TERM_COLOR: always jobs: build-linux: name: Build Linux Release runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v7 - uses: oven-sh/setup-bun@v2 with: bun-version: latest no-cache: true - uses: dtolnay/rust-toolchain@stable - name: Install system deps run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ build-essential \ libssl-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libxdo-dev \ libsoup-3.0-dev \ libjavascriptcoregtk-4.1-dev \ libgdk-pixbuf-2.0-dev \ libpango1.0-dev \ libatk1.0-dev \ libcairo2-dev - run: bun install --frozen-lockfile - run: bun run build - name: Build Tauri uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NO_STRIP: 1 APPIMAGE_EXTRACT_AND_RUN: 1 TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} with: tagName: ${{ github.ref_name }} releaseName: "Linuxy ${{ github.ref_name }}" includeUpdaterArtifacts: true releaseBody: | ## Linuxy ${{ github.ref_name }} One-click Linux Application Manager with Firejail sandboxing. ### Installation **Debian / Ubuntu** ```bash sudo apt install ./linuxy_*.deb ``` **Fedora / RHEL** ```bash sudo dnf install ./linuxy-*.rpm ``` **Arch Linux (AUR)** ```bash yay -S linuxy ``` **Flathub** ```bash flatpak install flathub com.linuxy.App ``` **NixOS** ```nix nix run github:swadhinbiswas/linuxy ``` **AppImage (any distro)** ```bash chmod +x Linuxy_*.AppImage ./Linuxy_*.AppImage ``` ### Build from Source ```bash git clone --branch ${{ github.ref_name }} --depth 1 https://github.com/swadhinbiswas/linuxy.git cd linuxy curl -fsSL https://bun.sh/install | bash bun install bun run tauri build ``` releaseDraft: false prerelease: false includeDebug: false - name: Install fpm for RPM run: | sudo apt-get install -y ruby ruby-dev rpm sudo gem install --no-document fpm - name: Build RPM run: | export PATH="$(gem env | grep 'EXECUTABLE DIRECTORY' | awk '{print $4}'):$PATH" ./scripts/build-rpm.sh - name: Upload RPM artifact uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: files: | src-tauri/target/release/bundle/rpm/*.rpm draft: false publish-aur: name: Publish AUR Package runs-on: ubuntu-latest needs: build-linux if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') steps: - uses: actions/checkout@v7 - name: Extract version id: get_version run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - name: Update PKGBUILD and .SRCINFO run: | VERSION="${{ steps.get_version.outputs.VERSION }}" sed -i "s/pkgver=.*/pkgver=${VERSION}/" packaging/aur/PKGBUILD sed -i "s/pkgver = .*/pkgver = ${VERSION}/" packaging/aur/.SRCINFO sed -i "s|source = linuxy-.*|source = linuxy-${VERSION}.tar.gz::https://github.com/swadhinbiswas/linuxy/archive/refs/tags/v${VERSION}.tar.gz|" packaging/aur/.SRCINFO curl -sL "https://github.com/swadhinbiswas/linuxy/archive/refs/tags/v${VERSION}.tar.gz" -o /tmp/linuxy-${VERSION}.tar.gz CHECKSUM=$(sha256sum /tmp/linuxy-${VERSION}.tar.gz | awk '{print $1}') sed -i "s/sha256sums=.*/sha256sums=('${CHECKSUM}')/" packaging/aur/PKGBUILD sed -i "s/sha256sums = .*/sha256sums = ${CHECKSUM}/" packaging/aur/.SRCINFO - name: Publish to AUR run: ./scripts/publish-aur.sh env: AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }} AUR_VERSION: ${{ steps.get_version.outputs.VERSION }} AUR_COMMIT_USERNAME: ${{ secrets.AUR_USERNAME }} AUR_COMMIT_EMAIL: ${{ secrets.AUR_EMAIL }} AUR_MAX_ATTEMPTS: "6"