Skip to content

Sync gadgets

Sync gadgets #50

Workflow file for this run

name: Sync gadgets
on:
schedule: [{ cron: '0 2 * * *' }]
workflow_dispatch: {}
permissions:
contents: write
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
ref: master
- name: Fetch upstream
run: |
set -euo pipefail
mkdir -p gadgets/hotcat
tmp=$(mktemp)
curl -fsSL 'https://commons.wikimedia.org/w/index.php?title=MediaWiki:Gadget-HotCat.js&action=raw&ctype=text/javascript' -o "$tmp"
if [ ! -f gadgets/hotcat/hotcat.js ] || ! cmp -s "$tmp" gadgets/hotcat/hotcat.js; then
mv "$tmp" gadgets/hotcat/hotcat.js
echo "CHANGED=1" >> $GITHUB_ENV
else
rm -f "$tmp"
echo "CHANGED=0" >> $GITHUB_ENV
fi
- name: Commit
if: env.CHANGED == '1'
run: |
git config user.name "Changlai Sun"
git config user.email "changlai.sun@gmail.com"
git add -A
git commit -m "chore(mirror): sync $(date -u +%F)"
- name: Push to master
if: env.CHANGED == '1'
env:
MY_PAT: ${{ secrets.MY_PAT }}
run: |
git remote set-url origin https://changlaisun:${MY_PAT}@github.com/thwiki/mw-gadgets-mirror.git
git push origin HEAD:master
- name: Purge jsDelivr cache
if: env.CHANGED == '1'
run: |
curl -s 'https://purge.jsdelivr.net/gh/thwiki/mw-gadgets-mirror@master/gadgets/hotcat/hotcat.js' || true