From d235d8fde8e3de7c3349d43d715bb9f22e9b3219 Mon Sep 17 00:00:00 2001 From: fithwum Date: Sat, 5 Jul 2025 15:16:39 -0700 Subject: [PATCH] test --- .gitea/workflows/base-build.yml | 77 +++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index b893279..a3db2cd 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -114,40 +114,61 @@ jobs: done generate-changelogs: - needs: build-and-push-docker-images - runs-on: docker-build + # needs: build-and-push-docker-images + runs-on: docker-build - steps: - - name: Checkout source - uses: actions/checkout@v3 + steps: + - name: Checkout source + uses: actions/checkout@v3 - - name: Clone upload repo - run: git clone "${{ env.REPO_URL2 }}" upload-repo + - name: Clone upload repo + run: git clone "${{ env.REPO_URL }}" upload-repo - - name: Generate and append changelogs - run: | - cd upload-repo - for version in buster bullseye bookworm docker-build; do - changelog="$version/CHANGES.md" - mkdir -p "$(dirname "$changelog")" - touch "$changelog" + - name: Generate CHANGES.md and build-info.json + run: | + cd upload-repo - echo "[INFO] Updating $changelog" + for version in buster bullseye bookworm docker-build; do + echo "[INFO] Processing $version" - echo -e "\n## $(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "$changelog" + mkdir -p "$version" + changelog="$version/CHANGES.md" + infofile="$version/build-info.json" + touch "$changelog" + + 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 + git log "${last_commit}..HEAD" --pretty=format:"- %s (%an)" >> "$changelog" + else git log -n 5 --pretty=format:"- %s (%an)" >> "$changelog" + fi + + # Build metadata file + cat < "$infofile" + { + "version": "$version", + "commit": "$(git rev-parse HEAD)", + "build_time": "$(date -u +'%Y-%m-%dT%H:%M:%SZ')", + "image_tag": "gitea.fithwum.tech/fithwum/debian-base:$version" + } + EOF done - - name: Commit and push changelogs if changed - run: | - cd upload-repo - git config --global user.name "${{ env.GIT_USERNAME }}" - git config --global user.email "${{ env.GIT_EMAIL }}" + - name: Commit and push changelogs if changed + run: | + cd upload-repo + git config --global user.name "${{ env.GIT_USERNAME }}" + git config --global user.email "${{ env.GIT_EMAIL }}" - if git status --porcelain | grep .; then - git add */CHANGES.md - git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" - git push - else - echo "[INFO] No changelog changes to commit." - fi \ No newline at end of file + if git status --porcelain | grep .; then + git add */CHANGES.md */build-info.json + git commit -m "Update changelogs and metadata on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" + git push + else + echo "[INFO] No changelog or metadata changes to commit." + fi \ No newline at end of file