test
Some checks failed
Build, Upload RootFS, and Push Docker Images / push-archives-to-repo (push) Has been cancelled
Build, Upload RootFS, and Push Docker Images / build-and-push-docker-images (push) Has been cancelled
Build, Upload RootFS, and Push Docker Images / generate-changelogs (push) Has been cancelled
Build, Upload RootFS, and Push Docker Images / build-rootfs-archives (push) Has been cancelled

This commit is contained in:
2025-07-05 15:16:39 -07:00
parent a4245f7e04
commit d235d8fde8

View File

@@ -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 <<EOF > "$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
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