Convert CI auto-sort system to Gitea Actions
- Move workflow from ci/auto-sort-files.yml to .gitea/workflows/auto-sort-files.yml - Update workflow to use CI_BOT_TOKEN secret for Gitea authentication - Configure proper git push URL for Gitea repository - Update ci/README.md with comprehensive Gitea Actions setup instructions - Add GITEA-ACTIONS-SETUP.md with detailed configuration guide - Update README.md to reference Gitea Actions setup documentation - Remove old GitHub Actions workflow file - Provide step-by-step token creation and repository secret configuration - Include troubleshooting guide and security considerations
This commit is contained in:
111
.gitea/workflows/auto-sort-files.yml
Normal file
111
.gitea/workflows/auto-sort-files.yml
Normal file
@@ -0,0 +1,111 @@
|
||||
# Gitea Actions Auto-Sort Configuration for Datasheets and Images
|
||||
# This workflow automatically moves files with specific prefixes to their correct directories
|
||||
|
||||
name: Auto-Sort Files
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
auto-sort:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.CI_BOT_TOKEN }}
|
||||
|
||||
- name: Auto-sort datasheets and images
|
||||
run: |
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Flag to track if any files were moved
|
||||
FILES_MOVED=false
|
||||
|
||||
# Function to move files with logging
|
||||
move_file() {
|
||||
local src="$1"
|
||||
local dest="$2"
|
||||
local dest_dir=$(dirname "$dest")
|
||||
|
||||
# Create destination directory if it doesn't exist
|
||||
mkdir -p "$dest_dir"
|
||||
|
||||
# Move file if it's not already in the correct location
|
||||
if [ "$src" != "$dest" ] && [ -f "$src" ]; then
|
||||
echo "Moving: $src -> $dest"
|
||||
mv "$src" "$dest"
|
||||
FILES_MOVED=true
|
||||
fi
|
||||
}
|
||||
|
||||
# Find and move datasheet files (DS_ prefix)
|
||||
echo "Searching for datasheet files with DS_ prefix..."
|
||||
find . -name "DS_*.pdf" -o -name "DS_*.doc" -o -name "DS_*.docx" -o -name "DS_*.txt" | while read file; do
|
||||
# Skip files already in docs/datasheets/
|
||||
if [[ "$file" != ./docs/datasheets/* ]]; then
|
||||
filename=$(basename "$file")
|
||||
move_file "$file" "docs/datasheets/$filename"
|
||||
fi
|
||||
done
|
||||
|
||||
# Find and move image files (IMG_ prefix)
|
||||
echo "Searching for image files with IMG_ prefix..."
|
||||
find . -name "IMG_*.png" -o -name "IMG_*.jpg" -o -name "IMG_*.jpeg" -o -name "IMG_*.svg" -o -name "IMG_*.gif" -o -name "IMG_*.pdf" -o -name "IMG_*.webp" | while read file; do
|
||||
# Skip files already in docs/images/
|
||||
if [[ "$file" != ./docs/images/* ]]; then
|
||||
filename=$(basename "$file")
|
||||
move_file "$file" "docs/images/$filename"
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if any files were moved
|
||||
if [ "$FILES_MOVED" = true ]; then
|
||||
echo "Files were moved. Setting output for commit step."
|
||||
echo "files_moved=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "No files needed to be moved."
|
||||
echo "files_moved=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
id: sort_files
|
||||
|
||||
- name: Commit moved files
|
||||
if: steps.sort_files.outputs.files_moved == 'true'
|
||||
run: |
|
||||
git config --local user.email "ci-bot@b4l.co.th"
|
||||
git config --local user.name "B4L CI Auto-Sort Bot"
|
||||
git add docs/datasheets/ docs/images/
|
||||
git commit -m "Auto-sort: Move DS_ and IMG_ prefixed files to correct directories
|
||||
|
||||
- Moved datasheet files (DS_*) to docs/datasheets/
|
||||
- Moved image files (IMG_*) to docs/images/
|
||||
- Automated by Gitea Actions auto-sort workflow"
|
||||
|
||||
- name: Push changes
|
||||
if: steps.sort_files.outputs.files_moved == 'true'
|
||||
run: |
|
||||
git push https://ci-bot:${{ secrets.CI_BOT_TOKEN }}@git.b4l.co.th/B4L/b4l-project-template.git HEAD:${{ github.ref_name }}
|
||||
|
||||
- name: Create summary
|
||||
run: |
|
||||
echo "## Auto-Sort Results" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
if [ "${{ steps.sort_files.outputs.files_moved }}" = "true" ]; then
|
||||
echo "✅ Files were automatically moved to correct directories" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Moved Files:" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Datasheet files (DS_*) → docs/datasheets/" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- Image files (IMG_*) → docs/images/" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ No files needed to be moved - all files are properly organized" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Supported Prefixes:" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **DS_**: Datasheets (PDF, DOC, DOCX, TXT)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **IMG_**: Images (PNG, JPG, SVG, GIF, PDF, WEBP)" >> $GITHUB_STEP_SUMMARY
|
||||
Reference in New Issue
Block a user