name: Build & create release on: workflow_dispatch: inputs: jobs: ######### # BUILD # ######### build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 # Tasks - run: npm install - run: npx just build-prod # Upload artifacts - uses: actions/upload-artifact@v4 with: name: dist path: dist/ ################## # CREATE RELEASE # ################## create-release: needs: build runs-on: ubuntu-latest outputs: RELEASE_UPLOAD_ID: ${{ steps.create_release.outputs.id }} TAG_NAME: ${{ steps.package-version.outputs.current-version }} steps: - uses: actions/checkout@v4 - run: mkdir compressed # Download artifacts - uses: actions/download-artifact@v4 with: name: dist path: dist/ # Create zip - uses: montudor/action-zip@v1 with: args: zip -qq -r ./compressed/diffuse-web.zip ./dist # Create tar.gz - uses: master-atul/tar-action@v1.1.0 with: command: c cwd: . files: ./dist outPath: compressed/diffuse-web.tar.gz # Get Diffuse's version number - id: package-version uses: martinbeentjes/npm-get-version-action@v1.3.1 # Create release - uses: softprops/action-gh-release@v1 id: create_release with: token: ${{ secrets.GITHUB_TOKEN }} tag_name: "${{ steps.package-version.outputs.current-version }}" name: "v${{ steps.package-version.outputs.current-version }}" body: "See the assets to download this version and install." draft: true files: | compressed/diffuse-web.zip compressed/diffuse-web.tar.gz ######### # TAURI # ######### tauri: needs: create-release strategy: fail-fast: false matrix: os: [macos-15, macos-13, ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 # Install dependencies - run: npm install # OS - name: install linux dependencies if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y libgtk-4-1 libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev libsoup-3.0 # Rust - uses: moonrepo/setup-rust@v1 # Download artifacts - uses: actions/download-artifact@v4 with: name: dist path: dist/ # Make a build - run: npx tauri build # Upload artifacts - uses: softprops/action-gh-release@v1 with: token: ${{ secrets.GITHUB_TOKEN }} tag_name: "${{ needs.create-release.outputs.TAG_NAME }}" draft: true files: | src-tauri/target/release/bundle/appimage/*.AppImage src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/dmg/*.dmg src-tauri/target/release/bundle/msi/*.msi src-tauri/target/release/bundle/nsis/*.exe src-tauri/target/release/bundle/rpm/*.rpm