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
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:
@@ -114,40 +114,61 @@ jobs:
|
|||||||
done
|
done
|
||||||
|
|
||||||
generate-changelogs:
|
generate-changelogs:
|
||||||
needs: build-and-push-docker-images
|
# needs: build-and-push-docker-images
|
||||||
runs-on: docker-build
|
runs-on: docker-build
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source
|
- name: Checkout source
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Clone upload repo
|
- name: Clone upload repo
|
||||||
run: git clone "${{ env.REPO_URL2 }}" upload-repo
|
run: git clone "${{ env.REPO_URL }}" upload-repo
|
||||||
|
|
||||||
- name: Generate and append changelogs
|
- name: Generate CHANGES.md and build-info.json
|
||||||
run: |
|
run: |
|
||||||
cd upload-repo
|
cd upload-repo
|
||||||
for version in buster bullseye bookworm docker-build; do
|
|
||||||
changelog="$version/CHANGES.md"
|
|
||||||
mkdir -p "$(dirname "$changelog")"
|
|
||||||
touch "$changelog"
|
|
||||||
|
|
||||||
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"
|
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
|
done
|
||||||
|
|
||||||
- name: Commit and push changelogs if changed
|
- name: Commit and push changelogs if changed
|
||||||
run: |
|
run: |
|
||||||
cd upload-repo
|
cd upload-repo
|
||||||
git config --global user.name "${{ env.GIT_USERNAME }}"
|
git config --global user.name "${{ env.GIT_USERNAME }}"
|
||||||
git config --global user.email "${{ env.GIT_EMAIL }}"
|
git config --global user.email "${{ env.GIT_EMAIL }}"
|
||||||
|
|
||||||
if git status --porcelain | grep .; then
|
if git status --porcelain | grep .; then
|
||||||
git add */CHANGES.md
|
git add */CHANGES.md */build-info.json
|
||||||
git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ')"
|
git commit -m "Update changelogs and metadata on $(date -u +'%Y-%m-%dT%H:%M:%SZ')"
|
||||||
git push
|
git push
|
||||||
else
|
else
|
||||||
echo "[INFO] No changelog changes to commit."
|
echo "[INFO] No changelog or metadata changes to commit."
|
||||||
fi
|
fi
|
||||||
Reference in New Issue
Block a user