Post about merged PR going into production (#34095)

This commit is contained in:
Peter Bengtsson 2023-01-30 10:18:03 -05:00 коммит произвёл GitHub
Родитель 9f37801ab0
Коммит e2dc4219ad
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 107 добавлений и 0 удалений

44
.github/actions-scripts/find-past-built-pr.js поставляемый Executable file
Просмотреть файл

@ -0,0 +1,44 @@
#!/usr/bin/env node
import got from 'got'
import { setOutput } from '@actions/core'
import github from '../../script/helpers/github.js'
import { getActionContext } from './lib/action-context.js'
async function main() {
const sha = await getBuiltSHA()
console.log({ sha })
const actionContext = getActionContext()
const { owner, repo } = actionContext
const octokit = github()
let number = ''
const q = `${sha} repo:"${owner}/${repo}"`
const { data } = await octokit.rest.search.issuesAndPullRequests({ q })
for (const issue of data.items) {
// console.log(issue)
console.log('ID:', issue.id)
console.log('Number:', issue.number)
console.log('URL:', issue.html_url)
number = issue.number
if (number) {
break
}
}
setOutput('number', number)
}
async function getBuiltSHA() {
const r = await got('https://docs.github.com/_build')
const sha = r.body.trim()
if (!/[a-f0-9]{40}/.test(sha)) {
throw new Error(`Response body does not look like a SHA ('${r.body.slice(0, 100)}'...)`)
}
return sha
}
main()

63
.github/workflows/notify-about-deployment.yml поставляемый Normal file
Просмотреть файл

@ -0,0 +1,63 @@
name: Notify about production deployment
# **What it does**: Posts a comment on the PR whose merge got into production.
# **Why we have it**: So that the PR author can be informed when their merged PR is in production.
# **Who does it impact**: Writers
on:
workflow_dispatch:
workflow_run:
# Note, we could do this after the "Purge Fastly" finished
workflows: ['Azure Production - Build and Deploy']
types:
- completed
permissions:
contents: read
pull-requests: write
jobs:
find-pr-and-post-comment:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
- uses: ./.github/actions/node-npm-setup
# The "Purge Fastly" action takes about 6 minutes to purge all
# languages. First does the language agnostic URLs, then English,
# then all the other languages.
# So it takes about ~30 seconds until it has sent the purge for
# all English docs.
- name: Sleep a little to give Fastly Purge a chance
run: sleep 30
- name: Find last PR
id: get-number
timeout-minutes: 3
env:
GITHUB_TOKEN: ${{ secrets.DOCUBOT_REPO_PAT }}
run: .github/actions-scripts/find-past-built-pr.js
- name: Find content directory changes comment
if: ${{ steps.get-number.outputs.number != '' }}
uses: peter-evans/find-comment@f4499a714d59013c74a08789b48abe4b704364a0
id: findComment
with:
issue-number: ${{ steps.get-number.outputs.number }}
comment-author: 'github-actions[bot]'
body-includes: '<!-- GONE_TO_PRODUCTION -->'
- name: Update comment
if: ${{ steps.get-number.outputs.number != '' }}
uses: peter-evans/create-or-update-comment@c9fcb64660bc90ec1cc535646af190c992007c32
with:
comment-id: ${{ steps.findComment.outputs.comment-id }}
issue-number: ${{ steps.get-number.outputs.number }}
body: |
<!-- GONE_TO_PRODUCTION -->
🚀 **This pull request has gone into production!**
The SHA of https://docs.github.com/_build matches the merge commit in this PR.
edit-mode: replace