name: "Publish Tauri App" on: workflow_dispatch: jobs: semantic-release: name: Trigger release outputs: version: ${{ steps.vars.outputs.tag }} runs-on: ubuntu-latest permissions: contents: write actions: write steps: - name: Checkout repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: fetch-depth: 0 submodules: true - name: Setup Node uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version-file: ".node-version" package-manager-cache: false - name: Install dependencies run: npm ci - name: Run semantic-release run: npm run semantic-release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Get version from tag id: vars run: | TAG=$(git describe --tags --abbrev=0) echo "tag=$TAG" >> $GITHUB_OUTPUT zip-archive: needs: semantic-release env: TAURI_VERSION: ${{ needs.semantic-release.outputs.version }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ env.TAURI_VERSION }} fetch-depth: 0 submodules: true - name: Create zip including submodules run: | cd .. zip ${{ github.event.repository.name }}/${{ github.event.repository.name }}-${{ env.TAURI_VERSION }}.zip ${{ github.event.repository.name }} -r - name: Upload zip to release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3 with: tag_name: ${{ env.TAURI_VERSION }} files: | ${{ github.event.repository.name }}-${{ env.TAURI_VERSION }}.zip # Windows-x86_64 windows-x86_64: needs: semantic-release env: TAURI_VERSION: ${{ needs.semantic-release.outputs.version }} runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ env.TAURI_VERSION }} fetch-depth: 0 submodules: true - name: Setup node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version-file: ".node-version" package-manager-cache: false - name: Install Rust stable uses: dtolnay/rust-toolchain@stable # They use branch based releases - name: Install cinny dependencies run: cd cinny && npm ci - name: Install tauri dependencies run: npm ci - name: Build desktop app with Tauri uses: tauri-apps/tauri-action@73fb865345c54760d875b94642314f8c0c894afa # v0.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} NODE_OPTIONS: "--max_old_space_size=4096" - name: Move msi run: | $version = $env:TAURI_VERSION.TrimStart('v') Move-Item "src-tauri\target\release\bundle\msi\Cinny_${version}_x64_en-US.msi" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi" shell: pwsh - name: Move msi.zip run: | $version = $env:TAURI_VERSION.TrimStart('v') Move-Item "src-tauri\target\release\bundle\msi\Cinny_${version}_x64_en-US.msi.zip" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi.zip" shell: pwsh - name: Move msi.zip.sig run: | $version = $env:TAURI_VERSION.TrimStart('v') Move-Item "src-tauri\target\release\bundle\msi\Cinny_${version}_x64_en-US.msi.zip.sig" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi.zip.sig" shell: pwsh - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3 with: tag_name: ${{ env.TAURI_VERSION }} files: | src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi.zip src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi.zip.sig # Linux-x86_64 linux-x86_64: needs: semantic-release env: TAURI_VERSION: ${{ needs.semantic-release.outputs.version }} runs-on: ubuntu-22.04 steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ env.TAURI_VERSION }} fetch-depth: 0 submodules: true - name: Setup node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version-file: ".node-version" package-manager-cache: false - name: Install Rust stable uses: dtolnay/rust-toolchain@stable # They use branch based releases - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf - name: Install cinny dependencies run: cd cinny && npm ci - name: Install tauri dependencies run: npm ci - name: Build desktop app with Tauri uses: tauri-apps/tauri-action@73fb865345c54760d875b94642314f8c0c894afa # v0.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} NODE_OPTIONS: "--max_old_space_size=4096" - name: Move deb run: | VERSION="${{ env.TAURI_VERSION }}" VERSION="${VERSION#v}" mv "src-tauri/target/release/bundle/deb/Cinny_${VERSION}_amd64.deb" "src-tauri/target/release/bundle/deb/Cinny_desktop-x86_64.deb" - name: Move AppImage run: | VERSION="${{ env.TAURI_VERSION }}" VERSION="${VERSION#v}" mv "src-tauri/target/release/bundle/appimage/Cinny_${VERSION}_amd64.AppImage" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage" - name: Move AppImage.tar.gz run: | VERSION="${{ env.TAURI_VERSION }}" VERSION="${VERSION#v}" mv "src-tauri/target/release/bundle/appimage/Cinny_${VERSION}_amd64.AppImage.tar.gz" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz" - name: Move AppImage.tar.gz.sig run: | VERSION="${{ env.TAURI_VERSION }}" VERSION="${VERSION#v}" mv "src-tauri/target/release/bundle/appimage/Cinny_${VERSION}_amd64.AppImage.tar.gz.sig" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz.sig" - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3 with: tag_name: ${{ env.TAURI_VERSION }} files: | src-tauri/target/release/bundle/deb/Cinny_desktop-x86_64.deb src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz.sig # macos-universal macos-universal: needs: semantic-release env: TAURI_VERSION: ${{ needs.semantic-release.outputs.version }} runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ env.TAURI_VERSION }} fetch-depth: 0 submodules: true - name: Setup node uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 with: node-version-file: ".node-version" package-manager-cache: false - name: Install Rust stable uses: dtolnay/rust-toolchain@stable # They use branch based releases with: targets: aarch64-apple-darwin,x86_64-apple-darwin - name: Install cinny dependencies run: cd cinny && npm ci - name: Install tauri dependencies run: npm ci - name: Build desktop app with Tauri uses: tauri-apps/tauri-action@73fb865345c54760d875b94642314f8c0c894afa # v0.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} NODE_OPTIONS: "--max_old_space_size=4096" with: args: "--target universal-apple-darwin" - name: Move dmg run: | VERSION="${{ env.TAURI_VERSION }}" VERSION="${VERSION#v}" mv "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_${VERSION}_universal.dmg" "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_desktop-universal.dmg" - name: Move app.tar.gz run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny.app.tar.gz" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz" - name: Move app.tar.gz.sig run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny.app.tar.gz.sig" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz.sig" - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3 with: tag_name: ${{ env.TAURI_VERSION }} files: | src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_desktop-universal.dmg src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz.sig # Upload release.json release-update: if: always() needs: [windows-x86_64, linux-x86_64, macos-universal, semantic-release] env: TAURI_VERSION: ${{ needs.semantic-release.outputs.version }} runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ env.TAURI_VERSION }} fetch-depth: 0 submodules: true - name: Install dependencies run: npm ci - name: Run release.json run: npm run release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}