Author SHA1 Message Date
fithwum 384bb8eaca Update changelogs on 2026-07-29T01:57:03Z [skip ci] 2026-07-29 01:57:03 +00:00
fithwum 4b7fdf59fe updates
vintage-story-build-latest / Docker prune (vm-docker-build2) (push) Successful in 4s
vintage-story-build-latest / Build and Push latest (push) Successful in 1m5s
vintage-story-build-latest / generate-changelogs (push) Successful in 13s
vintage-story-build-testing / Docker prune (vm-docker-build2) (push) Successful in 3s
vintage-story-build-testing / Build and Push testing (push) Successful in 1m3s
vintage-story-build-latest / generate-build-info (push) Successful in 15s
vintage-story-build-testing / generate-changelogs (push) Successful in 10s
vintage-story-build-testing / generate-build-info (push) Successful in 16s
2026-07-28 18:55:31 -07:00
fithwum d3417773b8 updates
vintage-story-build-testing / Docker prune (vm-docker-build2) (push) Successful in 3s
vintage-story-build-latest / Docker prune (vm-docker-build2) (push) Successful in 4s
vintage-story-build-latest / poll-and-detect-changes (push) Successful in 6s
vintage-story-build-latest / Build and Push latest (push) Skipped
vintage-story-build-testing / poll-and-detect-changes (push) Successful in 6s
vintage-story-build-latest / generate-changelogs (push) Skipped
vintage-story-build-latest / generate-build-info (push) Skipped
vintage-story-build-testing / Build and Push testing (push) Skipped
vintage-story-build-testing / generate-changelogs (push) Skipped
vintage-story-build-testing / generate-build-info (push) Skipped
2026-07-28 18:50:55 -07:00
4 changed files with 5 additions and 209 deletions
-1
View File
@@ -1 +0,0 @@
gitea.fithwum.tech/fithwum/debian-base@sha256:4023732c1234033dd440901f801b44288d6acd1c2d9db5918b104028dbfbc31a
+1 -102
View File
@@ -38,110 +38,9 @@ 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
- name: Ensure .cache exists
run: mkdir -p .cache && touch .cache/.gitkeep
- 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: 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
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 add ${{ env.DIGEST_FILE }}
git commit -m "Update base digest to $CURRENT_DIGEST" || true
# --- Safe rebase with auto conflict resolution ---
git fetch origin main
if ! git rebase --strategy-option=theirs origin/main; then
echo "[WARN] Rebase conflict, auto-resolving by preferring local digest"
git rebase --abort
git fetch origin main
git reset --hard origin/main
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:main
echo "changed=true" >> $GITHUB_OUTPUT
- name: Detect changed vintage-story 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 vintage-story 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/vintage-story.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
echo "new_versions=$NEW_VERSIONS" >> $GITHUB_OUTPUT
build-vintage-story-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 != ''
needs: docker-prune
strategy:
matrix:
version: [latest]
@@ -38,110 +38,9 @@ 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
- name: Ensure .cache exists
run: mkdir -p .cache && touch .cache/.gitkeep
- 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: 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
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 add ${{ env.DIGEST_FILE }}
git commit -m "Update base digest to $CURRENT_DIGEST" || true
# --- Safe rebase with auto conflict resolution ---
git fetch origin main
if ! git rebase --strategy-option=theirs origin/main; then
echo "[WARN] Rebase conflict, auto-resolving by preferring local digest"
git rebase --abort
git fetch origin main
git reset --hard origin/main
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:main
echo "changed=true" >> $GITHUB_OUTPUT
- name: Detect changed vintage-story 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 vintage-story 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/vintage-story.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
echo "new_versions=$NEW_VERSIONS" >> $GITHUB_OUTPUT
build-vintage-story-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 != ''
needs: docker-prune
strategy:
matrix:
version: [testing]
+3 -4
View File
@@ -1,6 +1,5 @@
## 2026-07-28T18:55:01Z
## 2026-07-29T01:57:03Z
- update and add testing build (fithwum)
- updates (fithwum)
- updates (fithwum)
- Merge build-info updates (fithwum)
- Update build-info on 2026-07-28T18:48:03Z [skip ci] (fithwum)
- Merge changelog updates (fithwum)