Skip to content

update 3.16

update 3.16 #38

name: Rename and Move Files
on:
push:
branches:
- main # 只监听main分支的推送
jobs:
rename-and-move:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Validate commit message format
id: validate
run: |
COMMIT_MSG=$(git log -1 --pretty=%B)
# 检查提交消息是否包含5个管道分隔的字段
if [[ "$COMMIT_MSG" =~ ^[^|]*\|[^|]*\|[^|]*\|[^|]*\|[^|]*$ ]]; then
echo "Valid commit message format"
echo "SHOULD_CONTINUE=true" >> $GITHUB_ENV
# 提取字段
IFS='|' read -r TIME TITLE CONF YEAR NAME <<< "$COMMIT_MSG"
echo "TIME=$TIME" >> $GITHUB_ENV
echo "TITLE=$TITLE" >> $GITHUB_ENV
echo "CONF=$CONF" >> $GITHUB_ENV
echo "YEAR=$YEAR" >> $GITHUB_ENV
echo "NAME=$NAME" >> $GITHUB_ENV
else
echo "Invalid commit message format. Expected format: TIME|TITLE|CONF|YEAR|NAME"
echo "SHOULD_CONTINUE=false" >> $GITHUB_ENV
fi
- name: Verify GitHub web trigger
if: env.SHOULD_CONTINUE == 'true'
run: |
# 检查是否来自GitHub网站操作
if [[ "${{ github.event.head_commit.author.username }}" == "github-actions" ]] ||
[[ "${{ github.event.head_commit.author.email }}" != *"@users.noreply.github.com"* ]]; then
echo "Skipping non-web commit"
echo "SHOULD_CONTINUE=false" >> $GITHUB_ENV
fi
- name: Check for new files
if: env.SHOULD_CONTINUE == 'true'
id: filecheck
run: |
PDF_FILE=$(git diff --name-only --diff-filter=A HEAD^ HEAD | grep -i '\.pdf$') || true
PPT_FILE=$(git diff --name-only --diff-filter=A HEAD^ HEAD | grep -i '\.pptx$\|\.ppt$') || true
PDF_COUNT=$(echo "$PDF_FILE" | wc -l | tr -d ' ')
PPT_COUNT=$(echo "$PPT_FILE" | wc -l | tr -d ' ')
if (( PDF_COUNT + PPT_COUNT > 2 )); then
echo "Too many files uploaded"
echo "SHOULD_CONTINUE=false" >> $GITHUB_ENV
elif (( PDF_COUNT == 2 )); then
echo "MODE=1" >> $GITHUB_ENV
elif (( PDF_COUNT == 1 && PPT_COUNT == 1 )); then
echo "MODE=2" >> $GITHUB_ENV
else
echo "Invalid file combination"
echo "SHOULD_CONTINUE=false" >> $GITHUB_ENV
fi
# ... 保留原有的文件移动和README更新步骤 ...
- name: Commit and push changes
if: env.SHOULD_CONTINUE == 'true'
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add .
git commit -m "Processed files: $TIME $TITLE"
git push