Update .gitea/workflows/ci.yml

This commit is contained in:
Arlind
2025-06-25 13:42:27 +02:00
parent 4bab692602
commit c5fea24199

View File

@@ -11,8 +11,7 @@ env:
GITEA_API: https://${{ vars.CONTAINER_REGISTRY }}/api/v1
jobs:
update_community_skins_readme:
name: Full CI/CD Pipeline
gather-skins:
runs-on: ubuntu-latest
container:
image: ${{ vars.CONTAINER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest
@@ -28,21 +27,12 @@ jobs:
with:
token: ${{ secrets.TOKEN }}
- name: Pull latest changes
run: |
git fetch origin main
git rebase origin/main || {
echo "⚠️ Git rebase failed, likely due to conflicts."
git rebase --abort || true
exit 1
}
- name: Find Skin Repositories for all users
id: find_skins
- name: Find Skin Repositories and Generate Tables
run: |
set -eo pipefail
user_rows_file=$(mktemp)
avatar_rows_file=$(mktemp)
mkdir -p data
user_rows_file=data/user_rows.txt
avatar_rows_file=data/avatar_rows.txt
total_valid_entries=0
page=1
@@ -103,24 +93,34 @@ jobs:
page=$((page + 1))
done
echo "user_rows_file=$user_rows_file" >> "$GITHUB_OUTPUT"
echo "avatar_rows_file=$avatar_rows_file" >> "$GITHUB_OUTPUT"
echo "total_valid_entries=$total_valid_entries" >> "$GITHUB_OUTPUT"
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: skin-tables
path: data/
- name: Update README with user skins
generate-readme:
needs: gather-skins
runs-on: ubuntu-latest
container:
image: ${{ vars.CONTAINER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest
steps:
- name: Download skin data
uses: actions/download-artifact@v3
with:
name: skin-tables
path: data/
- name: Checkout Repository
uses: actions/checkout@v4
with:
token: ${{ secrets.TOKEN }}
- name: Generate README
run: |
set -eo pipefail
README_PATH="${{ env.README_PATH }}"
user_rows_file="${{ steps.find_skins.outputs.user_rows_file }}"
avatar_rows_file="${{ steps.find_skins.outputs.avatar_rows_file }}"
total_valid_entries="${{ steps.find_skins.outputs.total_valid_entries }}"
if [ "$total_valid_entries" -eq 0 ]; then
echo "No valid entries found, skipping README update"
exit 0
fi
cp "$README_PATH" "${README_PATH}.bak"
cat > "$README_PATH" <<-EOF
@@ -152,7 +152,7 @@ jobs:
<tbody>
EOF
sort -t '|' -k1,1n "$user_rows_file" | cut -d'|' -f2- | sed 's/^/ /' >> "$README_PATH"
sort -t '|' -k1,1n data/user_rows.txt | cut -d'|' -f2- | sed 's/^/ /' >> "$README_PATH"
cat >> "$README_PATH" <<-EOF
</tbody>
@@ -162,37 +162,57 @@ jobs:
<p align="center">
EOF
sort -t '|' -k1,1n "$avatar_rows_file" | cut -d'|' -f2- | sed 's/^/ /' >> "$README_PATH"
sort -t '|' -k1,1n data/avatar_rows.txt | cut -d'|' -f2- | sed 's/^/ /' >> "$README_PATH"
cat >> "$README_PATH" <<-EOF
</p>
EOF
if git diff --quiet "$README_PATH"; then
echo "README has not changed, skipping commit"
echo "README has not changed"
rm -f "${README_PATH}.bak"
exit 0
else
echo "README updated"
rm -f "${README_PATH}.bak"
fi
- name: Upload updated README
uses: actions/upload-artifact@v3
with:
name: updated-readme
path: ${{ env.README_PATH }}
commit-readme:
needs: generate-readme
runs-on: ubuntu-latest
container:
image: ${{ vars.CONTAINER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest
steps:
- name: Download README
uses: actions/download-artifact@v3
with:
name: updated-readme
- name: Checkout Repository
uses: actions/checkout@v4
with:
token: ${{ secrets.TOKEN }}
- name: Configure Git
run: |
git config user.email "arlind@sulej.ch"
git config user.name "ci-bot"
git config lfs.https://${{ vars.CONTAINER_REGISTRY }}/arlind/skins.git/info/lfs.locksverify true
- name: Add and Commit changes
- name: Commit and Push README
run: |
git config advice.addIgnoredFile false
git add "$README_PATH"
git add README.md
git commit -m "[ci skip] push back from pipeline" -q || echo "No changes to commit"
- name: Push changes and create tag
run: |
if [ "${GITHUB_REF}" = "refs/heads/main" ]; then
git push origin HEAD:main || echo "No changes to push"
else
git push origin HEAD:"${GITHUB_REF_NAME}" || echo "No changes to push"
fi
fi