From 3c56a6b3eba2ae668457865053ae751d6dd7e140 Mon Sep 17 00:00:00 2001 From: fithwum Date: Fri, 26 Jun 2026 09:46:39 -0700 Subject: [PATCH] update fix for workflow --- .gitea/workflows/minecraft-build.yml | 174 +++++++++++++-------------- 1 file changed, 84 insertions(+), 90 deletions(-) diff --git a/.gitea/workflows/minecraft-build.yml b/.gitea/workflows/minecraft-build.yml index d15bec0..e212ae5 100644 --- a/.gitea/workflows/minecraft-build.yml +++ b/.gitea/workflows/minecraft-build.yml @@ -39,115 +39,109 @@ jobs: echo "[INFO] Pruning Docker images on ${{ matrix.runner }}..." docker image prune -a -f || true - poll-debian-base-and-detect-changes: - runs-on: vm-docker-build2 - needs: docker-prune - outputs: - digest_changed: ${{ steps.compare_digest.outputs.changed }} - versions_changed: ${{ steps.check_changed_versions.outputs.versions_changed }} - new_versions: ${{ steps.check_new_versions.outputs.new_versions }} - steps: - - name: Checkout repo - uses: actions/checkout@v3 - with: - fetch-depth: 0 + # poll-debian-base-and-detect-changes: + # runs-on: vm-docker-build2 + # needs: docker-prune + # outputs: + # digest_changed: ${{ steps.compare_digest.outputs.changed }} + # versions_changed: ${{ steps.check_changed_versions.outputs.versions_changed }} + # new_versions: ${{ steps.check_new_versions.outputs.new_versions }} + # steps: + # - name: Checkout repo + # uses: actions/checkout@v3 + # with: + # fetch-depth: 0 - - name: Ensure .cache exists - run: mkdir -p .cache && touch .cache/.gitkeep + # - name: Ensure .cache exists + # run: mkdir -p .cache && touch .cache/.gitkeep - - name: Debug IMAGE_REGISTRY - run: | - echo "IMAGE_REGISTRY=<$IMAGE_REGISTRY>" - printf '%q\n' "$IMAGE_REGISTRY" + # - name: Log in to Gitea Registry + # run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login gitea.fithwum.tech -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - - name: Log in to Gitea Registry - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login gitea.fithwum.tech -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + # - name: Get current digest of debian-base image + # id: get_digest + # run: | + # IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_DEBIAN }}:${{ env.IMAGE_TAG_DEBIAN }}" + # docker pull "$IMAGE" > /dev/null + # DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' "$IMAGE") + # echo "digest=$DIGEST" >> $GITHUB_OUTPUT + # echo "$DIGEST" > .cache/debian-base.digest.new - - name: Get current digest of debian-base image - id: get_digest - run: | - IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_DEBIAN }}:${{ env.IMAGE_TAG_DEBIAN }}" - docker pull "$IMAGE" > /dev/null - DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' "$IMAGE") - echo "digest=$DIGEST" >> $GITHUB_OUTPUT - echo "$DIGEST" > .cache/debian-base.digest.new + # - name: Compare with stored digest + # id: compare_digest + # run: | + # CURRENT_DIGEST="${{ steps.get_digest.outputs.digest }}" + # LAST_DIGEST="$(cat ${{ env.DIGEST_FILE }} 2>/dev/null || echo '')" - - name: Compare with stored digest - id: compare_digest - run: | - CURRENT_DIGEST="${{ steps.get_digest.outputs.digest }}" - LAST_DIGEST="$(cat ${{ env.DIGEST_FILE }} 2>/dev/null || echo '')" + # if [ "$CURRENT_DIGEST" = "$LAST_DIGEST" ]; then + # echo "[INFO] Digest unchanged" + # echo "changed=false" >> $GITHUB_OUTPUT + # exit 0 + # fi - if [ "$CURRENT_DIGEST" = "$LAST_DIGEST" ]; then - echo "[INFO] Digest unchanged" - echo "changed=false" >> $GITHUB_OUTPUT - exit 0 - fi + # echo "[INFO] Digest changed → updating cache" + # echo "$CURRENT_DIGEST" > ${{ env.DIGEST_FILE }} - echo "[INFO] Digest changed → updating cache" - echo "$CURRENT_DIGEST" > ${{ env.DIGEST_FILE }} + # git config user.name "${{ secrets.GIT_USERNAME }}" + # git config user.email "${{ secrets.GIT_EMAIL }}" - git config user.name "${{ secrets.GIT_USERNAME }}" - git config user.email "${{ secrets.GIT_EMAIL }}" + # git add ${{ env.DIGEST_FILE }} + # git commit -m "Update base digest to $CURRENT_DIGEST" || true - git add ${{ env.DIGEST_FILE }} - git commit -m "Update base digest to $CURRENT_DIGEST" || true + # # --- Safe rebase with auto conflict resolution --- + # git fetch origin master + # if ! git rebase --strategy-option=theirs origin/master; then + # echo "[WARN] Rebase conflict, auto-resolving by preferring local digest" + # git rebase --abort + # git fetch origin master + # git reset --hard origin/master + # echo "$CURRENT_DIGEST" > ${{ env.DIGEST_FILE }} + # git add ${{ env.DIGEST_FILE }} + # git commit -m "Force-update base digest to $CURRENT_DIGEST (auto-resolved)" + # fi - # --- Safe rebase with auto conflict resolution --- - git fetch origin master - if ! git rebase --strategy-option=theirs origin/master; then - echo "[WARN] Rebase conflict, auto-resolving by preferring local digest" - git rebase --abort - git fetch origin master - git reset --hard origin/master - echo "$CURRENT_DIGEST" > ${{ env.DIGEST_FILE }} - git add ${{ env.DIGEST_FILE }} - git commit -m "Force-update base digest to $CURRENT_DIGEST (auto-resolved)" - fi + # git push origin HEAD:master + # echo "changed=true" >> $GITHUB_OUTPUT - git push origin HEAD:master - echo "changed=true" >> $GITHUB_OUTPUT - - - name: Detect changed Minecraft versions - id: check_changed_versions - run: | - BEFORE_COMMIT="${{ github.event.before }}" - if [ -z "$BEFORE_COMMIT" ] || ! git cat-file -e "$BEFORE_COMMIT^{commit}" 2>/dev/null; then - BEFORE_COMMIT=$(git rev-parse HEAD~1) - fi - CHANGED=$(git diff --name-only "$BEFORE_COMMIT" HEAD || true) - CHANGED_VERSIONS="" - for version in $VERSIONS; do - echo "$CHANGED" | grep -q "^$version/.*\.\(sh\|Dockerfile\)$" && CHANGED_VERSIONS="$CHANGED_VERSIONS $version" - done - CHANGED_VERSIONS=$(echo "$CHANGED_VERSIONS" | xargs) # trim whitespace - echo "versions_changed=$CHANGED_VERSIONS" >> $GITHUB_OUTPUT + # - name: Detect changed Minecraft versions + # id: check_changed_versions + # run: | + # BEFORE_COMMIT="${{ github.event.before }}" + # if [ -z "$BEFORE_COMMIT" ] || ! git cat-file -e "$BEFORE_COMMIT^{commit}" 2>/dev/null; then + # BEFORE_COMMIT=$(git rev-parse HEAD~1) + # fi + # CHANGED=$(git diff --name-only "$BEFORE_COMMIT" HEAD || true) + # CHANGED_VERSIONS="" + # for version in $VERSIONS; do + # echo "$CHANGED" | grep -q "^$version/.*\.\(sh\|Dockerfile\)$" && CHANGED_VERSIONS="$CHANGED_VERSIONS $version" + # done + # CHANGED_VERSIONS=$(echo "$CHANGED_VERSIONS" | xargs) # trim whitespace + # echo "versions_changed=$CHANGED_VERSIONS" >> $GITHUB_OUTPUT - - name: Detect Minecraft versions without build-info - id: check_new_versions - run: | - NEW_VERSIONS="" - GIT_CREDENTIAL="${{ secrets.GIT_TOKEN || secrets.GIT_PASSWORD }}" - git clone --depth=1 "https://${{ secrets.GIT_USERNAME }}:${GIT_CREDENTIAL}@gitea.fithwum.tech/fithwum/minecraft.git" upload-repo + # - name: Detect Minecraft versions without build-info + # id: check_new_versions + # run: | + # NEW_VERSIONS="" + # GIT_CREDENTIAL="${{ secrets.GIT_TOKEN || secrets.GIT_PASSWORD }}" + # git clone --depth=1 "https://${{ secrets.GIT_USERNAME }}:${GIT_CREDENTIAL}@gitea.fithwum.tech/fithwum/minecraft.git" upload-repo - for version in $VERSIONS; do - if [ ! -f "upload-repo/$version/build-info.json" ]; then - echo "[INFO] No build-info.json for $version → treating as new" - NEW_VERSIONS="$NEW_VERSIONS $version" - fi - done + # for version in $VERSIONS; do + # if [ ! -f "upload-repo/$version/build-info.json" ]; then + # echo "[INFO] No build-info.json for $version → treating as new" + # NEW_VERSIONS="$NEW_VERSIONS $version" + # fi + # done - echo "new_versions=$NEW_VERSIONS" >> $GITHUB_OUTPUT + # echo "new_versions=$NEW_VERSIONS" >> $GITHUB_OUTPUT build-minecraft-images: runs-on: vm-docker-build2 needs: - docker-prune - - poll-debian-base-and-detect-changes - if: | - needs.poll-debian-base-and-detect-changes.outputs.digest_changed == 'true' || - needs.poll-debian-base-and-detect-changes.outputs.versions_changed != '' || - needs.poll-debian-base-and-detect-changes.outputs.new_versions != '' + # if: | + # needs.poll-debian-base-and-detect-changes.outputs.digest_changed == 'true' || + # needs.poll-debian-base-and-detect-changes.outputs.versions_changed != '' || + # needs.poll-debian-base-and-detect-changes.outputs.new_versions != '' strategy: matrix: version: [testing, vanilla, fabric, neoforged, forge, bukkit, quilt]