name: release on: push: branches: [main] pull_request: types: [closed] branches: [main] workflow_dispatch: permissions: {} jobs: pr: if: github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - uses: danielroe/uppt/pr@6ec27140623aa835e362f866d8ab0018ab057f4d # v0.6.11 with: token: ${{ secrets.GITHUB_TOKEN }} release: if: | github.event_name == 'pull_request' && github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/v') && github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest concurrency: group: release-${{ github.event.pull_request.number }} cancel-in-progress: false permissions: contents: write actions: write steps: - uses: danielroe/uppt/release@6ec27140623aa835e362f866d8ab0018ab057f4d # v0.6.11 with: token: ${{ secrets.GITHUB_TOKEN }} pack: if: github.event_name == 'workflow_dispatch' && startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest concurrency: group: pack-${{ github.ref }} cancel-in-progress: false permissions: {} outputs: files: ${{ steps.pack.outputs.files }} steps: - id: pack uses: danielroe/uppt/pack@6ec27140623aa835e362f866d8ab0018ab057f4d # v0.6.11 publish: if: | github.event_name == 'workflow_dispatch' && startsWith(github.ref, 'refs/tags/v') && needs.pack.outputs.files != '[]' needs: pack runs-on: ubuntu-latest concurrency: group: publish-${{ github.ref }} cancel-in-progress: false permissions: id-token: write environment: npm steps: - uses: danielroe/uppt/publish@6ec27140623aa835e362f866d8ab0018ab057f4d # v0.6.11 with: files: ${{ needs.pack.outputs.files }}