Skip to content

更换更新链接

更换更新链接 #10

Workflow file for this run

name: Update Script Version Timestamp (Minute-level)
on:
push:
branches:
- main
jobs:
update-timestamp:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set version string (YYYYMMDDHHMM)
id: timestamp
run: echo "ts=$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
- name: Get changed .user.js files in last commit
id: changed_files
run: |
FILES=$(git diff-tree --no-commit-id --name-only -r HEAD | grep '\.user\.js$' || true)
if [ -n "$FILES" ]; then
echo "files<<EOF" >> $GITHUB_OUTPUT
echo "$FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
else
echo "files=" >> $GITHUB_OUTPUT
fi
- name: Debug print changed files
run: echo "${{ steps.changed_files.outputs.files }}"
- name: Replace version timestamp in changed files only
if: ${{ steps.changed_files.outputs.files != '' }}
run: |
for file in ${{ steps.changed_files.outputs.files }}; do
echo "Updating $file"
sed -i "s/\(cdn\.jsdelivr\.net\/.*\.user\.js?v=\)[0-9]\+/\1${{ steps.timestamp.outputs.ts }}/g" "$file"
done
- name: Commit and push if changed
if: ${{ steps.changed_files.outputs.files != '' }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
if [ -n "$(git status --porcelain)" ]; then
git add ${{ steps.changed_files.outputs.files }}
git commit -m "Auto update @updateURL ?v=${{ steps.timestamp.outputs.ts }}"
git push
else
echo "No changes to commit."
fi