name: Release on: push: tags: - 'v*' workflow_dispatch: permissions: contents: write jobs: build: name: Build ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - name: Linux os: ubuntu-latest command: npm run dist:linux -- --publish never artifacts: | release/*.AppImage release/*.deb - name: Windows os: windows-latest command: npm run dist:win -- --publish never artifacts: | release/*.exe - name: macOS os: macos-latest command: npm run dist:mac -- --publish never artifacts: | release/*.dmg release/*.zip steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 cache: npm - name: Install dependencies run: npm ci - name: Build package run: ${{ matrix.command }} env: GH_TOKEN: ${{ github.token }} - name: Upload workflow artifacts uses: actions/upload-artifact@v4 with: name: nextcloud-notes-${{ matrix.name }} path: ${{ matrix.artifacts }} if-no-files-found: error - name: Upload to GitHub Release if: startsWith(github.ref, 'refs/tags/v') uses: softprops/action-gh-release@v2 with: files: ${{ matrix.artifacts }} fail_on_unmatched_files: true