Swadhin Biswas Ci/improve release notes (#41) · 8/28/2026
04d550f
153 lines · 4.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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"