name: "Nightly Builds" on: push: branches: - main pull_request: branches: - main workflow_dispatch: jobs: prepare: runs-on: ubuntu-latest outputs: version: ${{ steps.get_version.outputs.VERSION }} steps: - uses: actions/checkout@v4 - name: Get version id: get_version run: echo "VERSION=$(node -p "require('./src-tauri/tauri.conf.json').version")" >> $GITHUB_OUTPUT build: needs: prepare strategy: fail-fast: false matrix: platform: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.platform }} env: TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} steps: - uses: actions/checkout@v4 - name: setup node uses: actions/setup-node@v4 with: node-version: 20 - name: install Rust stable uses: dtolnay/rust-toolchain@stable - name: Rust cache uses: swatinem/rust-cache@v2 with: workspaces: "./src-tauri -> target" - name: pnpm cache uses: actions/cache@v4 with: path: ~/.pnpm-store key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm- - name: install dependencies (ubuntu only) if: matrix.platform == 'ubuntu-latest' run: | sudo apt update sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev libasound2-dev echo "PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig" >> $GITHUB_ENV - name: install frontend dependencies run: npm install -g pnpm && pnpm install - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Rename and Publish Windows Artifacts if: matrix.platform == 'windows-latest' run: | mv src-tauri/target/release/bundle/msi/*.msi src-tauri/target/release/bundle/msi/Qopy-${{ needs.prepare.outputs.version }}.msi mv src-tauri/target/release/bundle/msi/*.msi.sig src-tauri/target/release/bundle/msi/Qopy-${{ needs.prepare.outputs.version }}.msi.sig - name: Publish Windows Artifacts if: matrix.platform == 'windows-latest' uses: actions/upload-artifact@v4 with: name: build-windows-msi path: src-tauri/target/release/bundle/msi/*.msi - name: Publish Windows Updater Files if: matrix.platform == 'windows-latest' uses: actions/upload-artifact@v4 with: name: updater-files-windows path: | src-tauri/target/release/bundle/msi/*.msi src-tauri/target/release/bundle/msi/*.msi.sig - name: Rename and Publish Ubuntu Artifacts if: matrix.platform == 'ubuntu-latest' run: | mv src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/deb/Qopy-${{ needs.prepare.outputs.version }}.deb mv src-tauri/target/release/bundle/appimage/*.AppImage src-tauri/target/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}.AppImage mv src-tauri/target/release/bundle/appimage/*.AppImage.sig src-tauri/target/release/bundle/appimage/Qopy-${{ needs.prepare.outputs.version }}.AppImage.sig mv src-tauri/target/release/bundle/rpm/*.rpm src-tauri/target/release/bundle/rpm/Qopy-${{ needs.prepare.outputs.version }}.rpm - name: Publish Ubuntu Artifacts if: matrix.platform == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: build-ubuntu-deb path: src-tauri/target/release/bundle/deb/*.deb - name: Publish Ubuntu AppImage if: matrix.platform == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: build-ubuntu-appimage path: src-tauri/target/release/bundle/appimage/*.AppImage - name: Publish Ubuntu RPM if: matrix.platform == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: build-ubuntu-rpm path: src-tauri/target/release/bundle/rpm/*.rpm - name: Publish Ubuntu Updater Files if: matrix.platform == 'ubuntu-latest' uses: actions/upload-artifact@v4 with: name: updater-files-ubuntu path: | src-tauri/target/release/bundle/appimage/*.AppImage src-tauri/target/release/bundle/appimage/*.AppImage.sig