name: Release on: push: tags: ["v*"] permissions: contents: write jobs: build: strategy: fail-fast: false matrix: include: - os: ubuntu-latest args: --linux upload: "dist/*.AppImage dist/*.deb" - os: macos-latest args: --mac upload: "dist/*.dmg" - os: windows-latest args: --win upload: "dist/*.exe" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm - run: npm ci - run: npx electron-builder ${{ matrix.args }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: release-${{ matrix.os }} path: | ${{ matrix.upload }} publish: needs: build runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: path: dist merge-multiple: true - name: Publish release env: GH_TOKEN: ${{ github.token }} run: | TAG="${GITHUB_REF#refs/tags/}" gh release create "$TAG" --title "$TAG" \ --notes "MovieMapper $TAG release." \ dist/*