1
0
Files
balatro-mod-index/.github/workflows/fetch-upstream-mods.yml

70 lines
2.2 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 (skip LFS smudge)
run: |
rm -rf repo /tmp/upstream
GIT_LFS_SKIP_SMUDGE=1 \
git clone ssh://git@smallgit.dasguney.com:2222/skyline/balatro-mod-index.git repo
- name: Configure LFS and fetch objects
env:
GITEA_TOKEN: ${{ secrets.GT_TOKEN }}
run: |
cd repo
# Auth for Git + LFS
printf "machine smallgit.dasguney.com\nlogin skyline\npassword %s\n" "$GITEA_TOKEN" > ~/.netrc
chmod 600 ~/.netrc
# Force LFS to use direct Gitea endpoint (no nginx)
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
# Install hooks and explicitly fetch LFS data
git lfs install --local
git lfs fetch origin
git lfs checkout
- 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
run: |
cd repo
git config user.name "jim[bot]"
git config user.email "jim[bot]@users.noreply.github.com"
# Use direct Gitea HTTP endpoint for push
git remote set-url origin http://smallgit.dasguney.com:3000/skyline/balatro-mod-index.git
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