Repo sync #388
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Site policy sync | |
# **What it does**: Creates a branch in our site-policy repo with changes to site policy docs. | |
# **Why we have it**: We want to keep the site-policy repo up to date. | |
# **Who does it impact**: site-policy-admins and Developer Policy teams. | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow pull requests merged to the main branch | |
pull_request: | |
branches: | |
- main | |
types: | |
- closed | |
paths: | |
- 'content/site-policy/**' | |
workflow_dispatch: | |
permissions: | |
contents: read | |
jobs: | |
sync: | |
name: Get the latest docs | |
if: github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && github.repository == 'github/docs-internal') | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout docs-internal | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
- name: checkout public site-policy | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
repository: github/site-policy | |
token: ${{ secrets.API_TOKEN_SITEPOLICY }} | |
fetch-depth: '' | |
path: public-repo | |
- name: Commits internal policies to copy of public repo with descriptive message from triggering PR title | |
env: | |
PR_TITLE: ${{ github.event.pull_request.title }} | |
run: | | |
cd public-repo | |
git config --local user.name 'site-policy-bot' | |
git config --local user.email '[email protected]' | |
rm -rf Policies | |
cp -r ../content/site-policy Policies | |
git status | |
git checkout -b automated-sync-$GITHUB_RUN_ID | |
git add . | |
echo PR_TITLE: $PR_TITLE | |
[[ ! -z $PR_TITLE ]] && DESCRIPTION="${PR_TITLE}" || DESCRIPTION="Update manually triggered by workflow" | |
echo "DESCRIPTION=$DESCRIPTION" >> $GITHUB_ENV | |
git commit -m "$(echo $DESCRIPTION)" | |
- name: If there are changes to push, create a branch in the public repo and push changes | |
env: | |
GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} | |
run: | | |
cd public-repo | |
git config --local user.name 'site-policy-bot' | |
git config --local user.email '[email protected]' | |
NUM_FILES_CHANGED=$(git diff --name-only HEAD^..HEAD | wc -l) | |
if [[ $NUM_FILES_CHANGED -ge 1 ]] | |
then | |
git push --set-upstream origin automated-sync-$GITHUB_RUN_ID | |
else | |
echo "No updates to push to the public repo" | |
fi |