From b6218b05771865bdffcde4f5a3a289f347cebd60 Mon Sep 17 00:00:00 2001 From: fithwum Date: Fri, 17 Jul 2026 16:41:57 -0700 Subject: [PATCH] update workflows to handle parallel building --- .gitea/workflows/minecraft-build-bukkit.yml | 64 ++++++++++++++---- .gitea/workflows/minecraft-build-fabric.yml | 64 ++++++++++++++---- .gitea/workflows/minecraft-build-forge.yml | 66 ++++++++++++++----- .../workflows/minecraft-build-neoforged.yml | 64 ++++++++++++++---- .gitea/workflows/minecraft-build-quilt.yml | 64 ++++++++++++++---- .gitea/workflows/minecraft-build-testing.yml | 64 ++++++++++++++---- .gitea/workflows/minecraft-build-vanilla.yml | 64 ++++++++++++++---- 7 files changed, 351 insertions(+), 99 deletions(-) diff --git a/.gitea/workflows/minecraft-build-bukkit.yml b/.gitea/workflows/minecraft-build-bukkit.yml index 8f4c164..bef0251 100644 --- a/.gitea/workflows/minecraft-build-bukkit.yml +++ b/.gitea/workflows/minecraft-build-bukkit.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master diff --git a/.gitea/workflows/minecraft-build-fabric.yml b/.gitea/workflows/minecraft-build-fabric.yml index 55c8eb2..ff0332d 100644 --- a/.gitea/workflows/minecraft-build-fabric.yml +++ b/.gitea/workflows/minecraft-build-fabric.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master diff --git a/.gitea/workflows/minecraft-build-forge.yml b/.gitea/workflows/minecraft-build-forge.yml index 8768240..75cd3c6 100644 --- a/.gitea/workflows/minecraft-build-forge.yml +++ b/.gitea/workflows/minecraft-build-forge.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master @@ -366,4 +402,4 @@ jobs: git tag "$TAG" git push origin "$TAG" --force - done + done \ No newline at end of file diff --git a/.gitea/workflows/minecraft-build-neoforged.yml b/.gitea/workflows/minecraft-build-neoforged.yml index eeba8fa..9d2ad5c 100644 --- a/.gitea/workflows/minecraft-build-neoforged.yml +++ b/.gitea/workflows/minecraft-build-neoforged.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master diff --git a/.gitea/workflows/minecraft-build-quilt.yml b/.gitea/workflows/minecraft-build-quilt.yml index a581481..9c906f2 100644 --- a/.gitea/workflows/minecraft-build-quilt.yml +++ b/.gitea/workflows/minecraft-build-quilt.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master diff --git a/.gitea/workflows/minecraft-build-testing.yml b/.gitea/workflows/minecraft-build-testing.yml index 15e941d..50710dd 100644 --- a/.gitea/workflows/minecraft-build-testing.yml +++ b/.gitea/workflows/minecraft-build-testing.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master diff --git a/.gitea/workflows/minecraft-build-vanilla.yml b/.gitea/workflows/minecraft-build-vanilla.yml index f2fc707..9c922e8 100644 --- a/.gitea/workflows/minecraft-build-vanilla.yml +++ b/.gitea/workflows/minecraft-build-vanilla.yml @@ -227,21 +227,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-changelog-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */CHANGES.md + + # Nothing changed? + if 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" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Fast-forward master git checkout master git reset --hard origin/master @@ -333,21 +351,39 @@ jobs: git config user.name "${{ secrets.GIT_USERNAME }}" git config user.email "${{ secrets.GIT_EMAIL }}" - if git diff --quiet && git diff --cached --quiet; then + TEMP_BRANCH="tmp-buildinfo-$(date +%s)" + + # Create temporary branch + git checkout -b "$TEMP_BRANCH" + + # Stage changes + git add */build-info.json + + # Nothing changed? + if 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" - - git add */build-info.json git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ') [skip ci]" - git push origin "$TEMP_BRANCH" + # Push temporary branch + git push origin HEAD:$TEMP_BRANCH + # Rebase temp branch onto latest master git fetch origin master + + git checkout "$TEMP_BRANCH" + + if ! git rebase origin/master; then + echo "[WARN] Rebase failed, using merge instead." + git rebase --abort || true + git merge origin/master --no-edit + fi + + git push origin HEAD:$TEMP_BRANCH --force + + # Merge into master git checkout master git reset --hard origin/master