diff --git a/.gitea/workflows/debian-base-build-bookworm.yml b/.gitea/workflows/debian-base-build-bookworm.yml index c16e49d..b1823fe 100644 --- a/.gitea/workflows/debian-base-build-bookworm.yml +++ b/.gitea/workflows/debian-base-build-bookworm.yml @@ -272,20 +272,38 @@ jobs: cp "changelogs/$version/CHANGES.md" "upload-repo/$version/CHANGES.md" done - - name: Commit and push changelogs if changed + - name: Commit and push changelogs (temp branch) run: | cd upload-repo + git config user.name "${{ env.GIT_USERNAME }}" git config 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')" --no-verify - git push - else - echo "[INFO] No changelog changes to commit." + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No changelog changes." + exit 0 fi + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" + + git add */CHANGES.md + git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge changelog updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true + generate-build-info: needs: generate-changelogs runs-on: vm-docker-build2 @@ -400,23 +418,44 @@ jobs: cp "buildinfo/$version/build-info.json" "upload-repo/$version/build-info.json" done - - name: Commit and push build-info 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 build-info (temp branch) + run: | + cd upload-repo + + git config user.name "${{ env.GIT_USERNAME }}" + git config user.email "${{ env.GIT_EMAIL }}" + + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No build-info changes." + exit 0 + fi + + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" - if git status --porcelain | grep .; then git add */build-info.json - git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" - git push + git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge build-info updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true for version in $VERSIONS; do TAG="build-$version" + git tag -d "$TAG" 2>/dev/null || true + git push origin ":refs/tags/$TAG" 2>/dev/null || true + git tag "$TAG" - git push origin "$TAG" --force - done - else - echo "[INFO] No build-info changes to commit." - fi \ No newline at end of file + git push origin "$TAG" + done \ No newline at end of file diff --git a/.gitea/workflows/debian-base-build-bullseye.yml b/.gitea/workflows/debian-base-build-bullseye.yml index f49ac74..7625a6f 100644 --- a/.gitea/workflows/debian-base-build-bullseye.yml +++ b/.gitea/workflows/debian-base-build-bullseye.yml @@ -272,20 +272,38 @@ jobs: cp "changelogs/$version/CHANGES.md" "upload-repo/$version/CHANGES.md" done - - name: Commit and push changelogs if changed + - name: Commit and push changelogs (temp branch) run: | cd upload-repo + git config user.name "${{ env.GIT_USERNAME }}" git config 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')" --no-verify - git push - else - echo "[INFO] No changelog changes to commit." + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No changelog changes." + exit 0 fi + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" + + git add */CHANGES.md + git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge changelog updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true + generate-build-info: needs: generate-changelogs runs-on: vm-docker-build2 @@ -400,23 +418,44 @@ jobs: cp "buildinfo/$version/build-info.json" "upload-repo/$version/build-info.json" done - - name: Commit and push build-info 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 build-info (temp branch) + run: | + cd upload-repo + + git config user.name "${{ env.GIT_USERNAME }}" + git config user.email "${{ env.GIT_EMAIL }}" + + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No build-info changes." + exit 0 + fi + + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" - if git status --porcelain | grep .; then git add */build-info.json - git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" - git push + git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge build-info updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true for version in $VERSIONS; do TAG="build-$version" + git tag -d "$TAG" 2>/dev/null || true + git push origin ":refs/tags/$TAG" 2>/dev/null || true + git tag "$TAG" - git push origin "$TAG" --force - done - else - echo "[INFO] No build-info changes to commit." - fi \ No newline at end of file + git push origin "$TAG" + done \ No newline at end of file diff --git a/.gitea/workflows/debian-base-build-trixie.yml b/.gitea/workflows/debian-base-build-trixie.yml index 4d6e66e..7a46f92 100644 --- a/.gitea/workflows/debian-base-build-trixie.yml +++ b/.gitea/workflows/debian-base-build-trixie.yml @@ -272,20 +272,38 @@ jobs: cp "changelogs/$version/CHANGES.md" "upload-repo/$version/CHANGES.md" done - - name: Commit and push changelogs if changed + - name: Commit and push changelogs (temp branch) run: | cd upload-repo + git config user.name "${{ env.GIT_USERNAME }}" git config 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')" --no-verify - git push - else - echo "[INFO] No changelog changes to commit." + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No changelog changes." + exit 0 fi + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" + + git add */CHANGES.md + git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge changelog updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true + generate-build-info: needs: generate-changelogs runs-on: vm-docker-build2 @@ -400,23 +418,44 @@ jobs: cp "buildinfo/$version/build-info.json" "upload-repo/$version/build-info.json" done - - name: Commit and push build-info 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 build-info (temp branch) + run: | + cd upload-repo + + git config user.name "${{ env.GIT_USERNAME }}" + git config user.email "${{ env.GIT_EMAIL }}" + + if git diff --quiet && git diff --cached --quiet; then + echo "[INFO] No build-info changes." + exit 0 + fi + + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + git checkout -b "$TEMP_BRANCH" - if git status --porcelain | grep .; then git add */build-info.json - git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" - git push + git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" + + git push origin "$TEMP_BRANCH" + + git fetch origin main + git checkout main + git reset --hard origin/main + + git merge --no-ff "$TEMP_BRANCH" \ + -m "Merge build-info updates" + + git push origin main + + git push origin --delete "$TEMP_BRANCH" || true for version in $VERSIONS; do TAG="build-$version" + git tag -d "$TAG" 2>/dev/null || true + git push origin ":refs/tags/$TAG" 2>/dev/null || true + git tag "$TAG" - git push origin "$TAG" --force - done - else - echo "[INFO] No build-info changes to commit." - fi \ No newline at end of file + git push origin "$TAG" + done \ No newline at end of file