зеркало из https://github.com/github/docs.git
Post about merged PR going into production (#34095)
This commit is contained in:
Родитель
9f37801ab0
Коммит
e2dc4219ad
|
@ -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()
|
|
@ -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
|
Загрузка…
Ссылка в новой задаче