62 lines
1.9 KiB
YAML
62 lines
1.9 KiB
YAML
name: fetch upstream mod changes
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "13,43 * * * *"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
replace-mods:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Clone Gitea repo
|
|
run: |
|
|
rm -rf repo /tmp/upstream
|
|
git clone ssh://git@smallgit.dasguney.com:2222/skyline/balatro-mod-index.git repo
|
|
|
|
- name: Clone upstream GitHub repo
|
|
run: |
|
|
git clone https://github.com/skyline69/balatro-mod-index.git /tmp/upstream
|
|
|
|
- name: Replace mods directory
|
|
run: |
|
|
cd repo
|
|
rm -rf mods
|
|
cp -a /tmp/upstream/mods ./mods
|
|
|
|
- name: Append last-updated timestamp
|
|
run: |
|
|
cd repo
|
|
TIME_NOW=$(date +"%s")
|
|
git diff -z --name-only | grep -z meta.json | while IFS='' read -r -d '' file; do
|
|
jq --indent 2 '."last-updated" |= (. // '"$TIME_NOW"')' "$file" | sponge "$file"
|
|
done
|
|
|
|
- name: Commit and push
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.GT_TOKEN }}
|
|
run: |
|
|
cd repo
|
|
|
|
git config user.name "jim[bot]"
|
|
git config user.email "jim[bot]@users.noreply.github.com"
|
|
|
|
# Write .netrc safely (no heredoc)
|
|
printf "machine smallgit.dasguney.com\nlogin skyline\npassword %s\n" "$GITEA_TOKEN" > ~/.netrc
|
|
chmod 600 ~/.netrc
|
|
|
|
# Use direct Gitea HTTP endpoint
|
|
git remote set-url origin http://smallgit.dasguney.com:3000/skyline/balatro-mod-index.git
|
|
|
|
# Make git-lfs use the same endpoint and disable lock verification
|
|
git config lfs.url "http://smallgit.dasguney.com:3000/skyline/balatro-mod-index.git/info/lfs"
|
|
git config lfs."http://smallgit.dasguney.com:3000/skyline/balatro-mod-index.git/info/lfs".locksverify false
|
|
|
|
git lfs install --local || true
|
|
|
|
git add mods
|
|
if git commit -m "fetch upstream mod changes ($(date --utc +%Y%m%d_%H%M%SZ))"; then
|
|
git push origin main
|
|
fi
|