name: Release on: push: tags: - "v*" permissions: contents: write env: CARGO_TERM_COLOR: always jobs: build-linux: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Install system dependencies run: | sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ libssl-dev \ build-essential \ pkg-config \ curl \ wget \ libfuse2 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm cache-dependency-path: v2/package-lock.json - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Cache Rust dependencies uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git v2/src-tauri/target key: ${{ runner.os }}-cargo-${{ hashFiles('v2/src-tauri/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - name: Install npm dependencies working-directory: v2 run: npm ci --legacy-peer-deps - name: Build Tauri app working-directory: v2 run: npx tauri build - name: List build artifacts run: | find v2/src-tauri/target/release/bundle -type f \( -name "*.deb" -o -name "*.AppImage" \) | head -20 - name: Upload .deb uses: actions/upload-artifact@v4 with: name: bterminal-deb path: v2/src-tauri/target/release/bundle/deb/*.deb - name: Upload AppImage uses: actions/upload-artifact@v4 with: name: bterminal-appimage path: v2/src-tauri/target/release/bundle/appimage/*.AppImage release: needs: build-linux runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Download .deb uses: actions/download-artifact@v4 with: name: bterminal-deb path: artifacts/ - name: Download AppImage uses: actions/download-artifact@v4 with: name: bterminal-appimage path: artifacts/ - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: generate_release_notes: true files: | artifacts/*.deb artifacts/*.AppImage