name: Build and Release Court Pilot on: push: tags: - 'v*' workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: CN_APPLICATION: "trweb/court-pilot" jobs: draft: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Create CrabNebula draft release uses: crabnebula-dev/cloud-release@v0 with: command: release draft ${{ env.CN_APPLICATION }} --framework tauri api-key: ${{ secrets.CN_API_KEY }} build: needs: draft strategy: fail-fast: false matrix: os: - ubuntu-22.04 - windows-latest runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 cache: npm - name: Setup Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: stable cache: true - name: Install Linux dependencies if: matrix.os == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y \ webkit2gtk-4.1 \ libappindicator3-dev \ librsvg2-dev \ patchelf - name: Install dependencies run: npm ci - name: Install Ionic CLI run: npm install -g @ionic/cli - name: Build Tauri app env: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} run: npm run tauri build - name: Upload release assets to CrabNebula uses: crabnebula-dev/cloud-release@v0 with: command: release upload ${{ env.CN_APPLICATION }} --framework tauri api-key: ${{ secrets.CN_API_KEY }} path: ./src-tauri publish: needs: build runs-on: ubuntu-22.04 steps: - name: Publish CrabNebula release uses: crabnebula-dev/cloud-release@v0 with: command: release publish ${{ env.CN_APPLICATION }} --framework tauri api-key: ${{ secrets.CN_API_KEY }} path: ./src-tauri working-directory: ./src-tauri