sfdhfgh
Some checks failed
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-and-push-rootfs-archives (push) Successful in 11m4s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-changelogs (push) Successful in 1m8s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-and-push-docker-images (push) Successful in 2m30s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-build-info (push) Failing after 1m2s
Some checks failed
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-and-push-rootfs-archives (push) Successful in 11m4s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-changelogs (push) Successful in 1m8s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-and-push-docker-images (push) Successful in 2m30s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-build-info (push) Failing after 1m2s
This commit is contained in:
@@ -187,70 +187,37 @@ jobs:
|
|||||||
- name: Checkout source
|
- name: Checkout source
|
||||||
uses: actions/checkout@v3
|
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
|
- name: Clone upload repo
|
||||||
run: |
|
run: |
|
||||||
GIT_CREDENTIAL="${{ secrets.GIT_TOKEN || secrets.GIT_PASSWORD }}"
|
GIT_CREDENTIAL="${{ secrets.GIT_TOKEN || secrets.GIT_PASSWORD }}"
|
||||||
for i in {1..5}; do
|
git clone --depth=1 "https://${{ env.GIT_USERNAME }}:${GIT_CREDENTIAL}@gitea.fithwum.tech/fithwum/debian-base.git" upload-repo
|
||||||
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
|
|
||||||
|
|
||||||
if [ ! -d upload-repo ]; then
|
- name: Copy generated changelogs into repo
|
||||||
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
|
|
||||||
run: |
|
run: |
|
||||||
cd upload-repo
|
|
||||||
for version in $VERSIONS; do
|
for version in $VERSIONS; do
|
||||||
echo "[INFO] Updating changelog for $version"
|
mkdir -p "upload-repo/$version"
|
||||||
|
cp "changelogs/$version/CHANGES.md" "upload-repo/$version/CHANGES.md"
|
||||||
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
|
|
||||||
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 user.name "${{ secrets.GIT_USERNAME }}"
|
git config user.name "${{ env.GIT_USERNAME }}"
|
||||||
git config user.email "${{ secrets.GIT_EMAIL }}"
|
git config 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
|
||||||
|
|||||||
Reference in New Issue
Block a user