Skip to content

Release a snapshot artifact for a PR #180

Release a snapshot artifact for a PR

Release a snapshot artifact for a PR #180

name: Release a snapshot artifact for a PR
on:
workflow_run:
workflows: ['CI']
branches-ignore: ['dependabot/**']
types: [completed]
jobs:
release-snapshot-artifact:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.user.login != 'dependabot[bot]' && github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Download PR_NUMBER
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6
with:
run_id: ${{github.event.workflow_run.id }}
name: PR_NUMBER
path: .
- name: Extract PR number
id: extract-pr-number
run: |
pr_number=$(cat ./PR_NUMBER)
echo "PR_NUMBER=$pr_number" >> $GITHUB_OUTPUT
- name: Checkout project
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Checkout PR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr checkout ${{ steps.extract-pr-number.outputs.PR_NUMBER }}
- name: Download dist folder
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6
with:
run_id: ${{github.event.workflow_run.id }}
name: dist
path: dist
- name: Remove `dist` from `.gitignore`
run: sed -i -E 's|^/?dist/?||g' .gitignore
- name: Create snapshot branch
uses: alejandrohdezma/actions/commit-and-push@v1
with:
message: 'Release snapshot for #${{ steps.extract-pr-number.outputs.PR_NUMBER }}'
force-push: 'true'
branch: snapshots/${{ steps.extract-pr-number.outputs.PR_NUMBER }}
- name: Create Comment
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2.9.0
with:
recreate: true
header: snapshot
number: ${{ steps.extract-pr-number.outputs.PR_NUMBER }}
message: |
A snapshot release has been created as `snapshots/${{ steps.extract-pr-number.outputs.PR_NUMBER }}`.
You can test it out with:
```yaml
uses: scala-steward-org/scala-steward-action@snapshots/${{ steps.extract-pr-number.outputs.PR_NUMBER }}
```
It will be automatically recreated on any change to this PR.