Skip to content

on-payload-release

on-payload-release #23

name: on-payload-release
on:
workflow_dispatch:
repository_dispatch:
types: [payload-release-event]
jobs:
receive-repository-dispatch:
runs-on: ubuntu-latest
steps:
- name: Log the event payload
if: ${{ github.event_name != 'workflow_dispatch' }}
run: 'echo "Event received: ${{ toJson(github.event.client_payload) }}"'
- name: Slack notification to sync docs
uses: slackapi/slack-github-action@v2.1.1
with:
webhook: ${{ secrets.SLACK_WEBHOOK_WEBSITE_CHANNEL }}
webhook-type: incoming-webhook
payload: |
{
"text": "👀 New version of Payload released. Please sync the docs in the Payload CMS Admin."
}
- name: Fetch latest Payload release
id: release
run: |
RELEASE=$(curl -s https://api.github.com/repos/payloadcms/payload/releases/latest)
echo "version=$(echo "$RELEASE" | jq -r '.tag_name')" >> $GITHUB_OUTPUT
echo "$RELEASE" | jq -r '.body' > /tmp/release_body.txt
- name: Create release post draft
run: |
jq -n \
--arg version "${{ steps.release.outputs.version }}" \
--rawfile body /tmp/release_body.txt \
'{version: $version, body: $body}' | \
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Release-Secret: ${{ secrets.PAYLOAD_RELEASE_SECRET }}" \
-H "x-vercel-protection-bypass: ${{ secrets.VERCEL_AUTOMATION_BYPASS_SECRET }}" \
--data-binary @- \
--fail-with-body \
"${{ secrets.PAYLOAD_WEBSITE_URL }}/api/create-release-post"