Skip to content

Update auto-version.yml #6

Update auto-version.yml

Update auto-version.yml #6

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 --name-only HEAD~1 | grep '\.user\.js$' || echo "")
echo "files=$FILES" >> $GITHUB_OUTPUT
- name: Replace version timestamp in changed files only
if: ${{ steps.changed_files.outputs.files != '' }}
run: |
echo "Changed files: ${{ steps.changed_files.outputs.files }}"
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