From 4e54a0fafcdb0f5fd57ef05d83fe9a006f3714a3 Mon Sep 17 00:00:00 2001 From: fithwum Date: Wed, 9 Jul 2025 09:35:47 -0700 Subject: [PATCH] sfdhfgh --- .gitea/workflows/base-build.yml | 73 +++++++++------------------------ 1 file changed, 20 insertions(+), 53 deletions(-) diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index 305f242..c827d21 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -187,70 +187,37 @@ jobs: - name: Checkout source uses: actions/checkout@v3 + - name: Create temporary changelog workspace + run: mkdir changelogs + + - name: Generate changelogs from git log + run: | + for version in $VERSIONS; do + echo "[INFO] Generating changelog for $version" + changelog="changelogs/$version/CHANGES.md" + mkdir -p "$(dirname "$changelog")" + + echo -e "## $(date -u +'%Y-%m-%dT%H:%M:%SZ')\n" >> "$changelog" + git log -n 10 --pretty=format:"- %s (%an)" >> "$changelog" + done + - name: Clone upload repo run: | GIT_CREDENTIAL="${{ secrets.GIT_TOKEN || secrets.GIT_PASSWORD }}" - for i in {1..5}; do - echo "Attempt $i: Cloning upload-repo..." - if git clone --depth=20 --filter=blob:none --no-checkout \ - "https://${{ env.GIT_USERNAME }}:${GIT_CREDENTIAL}@gitea.fithwum.tech/fithwum/debian-base.git" upload-repo; then - break - fi - echo "Retrying in 10s..." - sleep 10 - done + git clone --depth=1 "https://${{ env.GIT_USERNAME }}:${GIT_CREDENTIAL}@gitea.fithwum.tech/fithwum/debian-base.git" upload-repo - if [ ! -d upload-repo ]; then - echo "[ERROR] Failed to clone upload repo." - exit 1 - fi - - cd upload-repo - git sparse-checkout init --cone - for version in $VERSIONS; do - git sparse-checkout set "$version" - done - git checkout - - - - name: Generate per-version changelogs + - name: Copy generated changelogs into repo run: | - cd upload-repo for version in $VERSIONS; do - echo "[INFO] Updating changelog for $version" - - changelog="$version/CHANGES.md" - mkdir -p "$(dirname "$changelog")" - touch "$changelog" - - infofile="$version/build-info.json" - last_commit="" - if [ -f "$infofile" ]; then - last_commit=$(jq -r '.commit' "$infofile") - fi - - echo -e "\n## $(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "$changelog" - - if [ -n "$last_commit" ]; then - # Check if commit exists in history - if git merge-base --is-ancestor "$last_commit" HEAD 2>/dev/null; then - echo "[INFO] Using commits since $last_commit" - git log "${last_commit}..HEAD" --pretty=format:"- %s (%an)" | head -n 10 >> "$changelog" - else - echo "[WARN] $last_commit not found in current history (likely due to shallow clone)" - git log -n 10 --pretty=format:"- %s (%an)" >> "$changelog" - fi - else - echo "[INFO] No previous commit found in build-info.json" - git log -n 10 --pretty=format:"- %s (%an)" >> "$changelog" - fi + mkdir -p "upload-repo/$version" + cp "changelogs/$version/CHANGES.md" "upload-repo/$version/CHANGES.md" done - name: Commit and push changelogs if changed run: | cd upload-repo - git config user.name "${{ secrets.GIT_USERNAME }}" - git config user.email "${{ secrets.GIT_EMAIL }}" + git config user.name "${{ env.GIT_USERNAME }}" + git config user.email "${{ env.GIT_EMAIL }}" if git status --porcelain | grep .; then git add */CHANGES.md