Skip to content

Release a snapshot artifact for a PR #163

Release a snapshot artifact for a PR

Release a snapshot artifact for a PR #163

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@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0
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@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- 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@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0
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@f61b6cf21ef2fcc468f4345cdfcc9bda741d2343 # v2.6.2
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.