Previously, changes to the wiki would get merged to the public repo in a once-a-week action. This significantly revises this, making the two sides be mirrors (up to the few seconds it takes to do a merge). This is driven by a minimal-ish yaml file in both sides (`TypeScript` and `TypeScript-wiki`) that *always* works from the script in the public repo. The two action specs are nearly identical, but there are some differences: - On the main repo, trigger on a `gollum` event, and in the wiki repo the usual (pushes, schedule, manual). (The schedule run is kept as a just-in-case, and it's now running twice a week.) - The filename is `sync-wiki` on the TS side and just `sync` in the wiki. (Good to avoid confusion if both files somehow find themselves in the same neighborhood.) - The secret names are different since I used the name that already exists in each side. The script does *not* start with a checkout of its repository. Doing this in the TS side would be redundant (it would get the TS tree) and slow. Instead, it's always cloning the public wiki repo (`DASHREMOTE`, since its url is `.../TypeScript-wiki`) and then fetching into it the repo of the rendered wiki (`DOTREMOTE`, with a `.../TypeScript.wiki`) url. Also revised the README, since they should always be mirrored with this change, and therefore there is no "source of truth".
22 lines
614 B
YAML
22 lines
614 B
YAML
name: Sync Two Wiki Repos
|
|
|
|
on: [gollum]
|
|
|
|
jobs:
|
|
sync:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Get repo name
|
|
run: R=${GITHUB_REPOSITORY%?wiki}; echo "BASENAME=${R##*/}" >> $GITHUB_ENV
|
|
- name: Checkout ${{ env.BASENAME }}-wiki
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: "${{ GITHUB.repository_owner }}/${{ env.BASENAME }}-wiki"
|
|
token: ${{ secrets.TS_BOT_GITHUB_TOKEN }}
|
|
fetch-depth: 0
|
|
- name: Run sync
|
|
run: ./.github/workflows/sync
|
|
env:
|
|
PUSHER: typescript-bot <bot@typescriptlang.org>
|
|
AUTH: ${{ secrets.TS_BOT_GITHUB_TOKEN }}
|