update 3.16 #38
This file contains hidden or 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: 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 |