main.user.js version update #42
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: main.user.js version update | |
on: | |
schedule: | |
# 每周一的UTC时间16点(北京时间凌晨0点) | |
- cron: "0 16 * * 0" | |
workflow_dispatch: | |
jobs: | |
update_version: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-tags: true | |
- name: Test if locals.js has changed since the last release | |
run: | | |
# 最近提交是否存在tag | |
if [ ! "$(git tag --contains ${{ github.sha }})" ]; then | |
# 获得最近以`main.user.js Update to version`开头的提交的sha | |
release_commit_sha=$(git log --grep="^main.user.js Update to version" -n 1 --pretty=format:"%H") | |
git log --grep="^main.user.js Update to version" -n 1 --pretty=format:"%H" | |
# 对应的时间戳 | |
release_commit_timestamp=$(git show -s --format=%ct $release_commit_sha) | |
git show -s --format=%ct $release_commit_sha | |
# 最近的tag的时间戳 | |
latest_tag_commit_sha=$(git rev-list --tags --max-count=1) | |
git rev-list --tags --max-count=1 | |
latest_tag_commit_timestamp=$(git show -s --format=%ct $latest_tag_commit_sha) | |
git show -s --format=%ct $latest_tag_commit_sha | |
echo "release_commit_sha=$release_commit_sha" | |
echo "release_commit_timestamp=$release_commit_timestamp" | |
echo "latest_tag_commit_sha=$latest_tag_commit_sha" | |
echo "latest_tag_commit_timestamp=$latest_tag_commit_timestamp" | |
if [ $release_commit_timestamp -gt $latest_tag_commit_timestamp ]; then | |
ref=$release_commit_sha | |
else | |
ref=$latest_tag_commit_sha | |
fi | |
git diff --quiet --exit-code $ref locals.js || {echo "LOCALS_JS_IS_CHANGED=true" && echo "LOCALS_JS_IS_CHANGED=true" >> $GITHUB_ENV} | |
fi | |
- name: Update version in main.user.js | |
if: | | |
${{ env.LOCALS_JS_IS_CHANGED == 'true' }} | |
run: | | |
sed -i -E "s/(@version\s*[0-9]+\.[0-9]+\.[0-9]+)(-[0-9]{4}-[0-9]{2}-[0-9]{2})?/\ | |
\1-$(TZ='Asia/Shanghai' date +'%Y-%m-%d')/" main.user.js | |
git diff --quiet --exit-code main.user.js || {echo "MAIN_USER_JS_IS_CHANGED=true" && echo "MAIN_USER_JS_IS_CHANGED=true" >> $GITHUB_ENV} | |
- name: Commit and push main.user.js | |
if: ${{ env.LOCALS_JS_IS_CHANGED == 'true' && | |
env.MAIN_USER_JS_IS_CHANGED == 'true' }} | |
run: | | |
bash script/ci_commit_with_signature.sh \ | |
-T "${{ secrets.CI_GITHUB_TOKEN }}" \ | |
-R "${{ github.repository }}" \ | |
-B "${{ github.ref_name }}" \ | |
-P "${{ github.sha }}" \ | |
-F "main.user.js" \ | |
-h "main.user.js Update to version $(TZ='Asia/Shanghai' date +'%Y-%m-%d')" \ | |
-b "Signed-off-by: 沙漠之子 <[email protected]>" |