build test
All checks were successful
Build and Push Teamspeak Images on Base Image Update / check-for-changes (push) Successful in 7s
Build and Push Teamspeak Images on Base Image Update / build-alpine (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / build-debian (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / build-basic (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / update-base-digest-cache (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / generate-build-info (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / generate-changelogs (push) Has been skipped
All checks were successful
Build and Push Teamspeak Images on Base Image Update / check-for-changes (push) Successful in 7s
Build and Push Teamspeak Images on Base Image Update / build-alpine (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / build-debian (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / build-basic (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / update-base-digest-cache (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / generate-build-info (push) Has been skipped
Build and Push Teamspeak Images on Base Image Update / generate-changelogs (push) Has been skipped
This commit is contained in:
@@ -55,42 +55,42 @@ jobs:
|
||||
echo "debian_digest=$debian_digest" >> $GITHUB_OUTPUT
|
||||
echo "basic_digest=$basic_digest" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Commit and push updated base digests if changed
|
||||
run: |
|
||||
git config user.name "${{ secrets.GIT_USERNAME }}"
|
||||
git config user.email "${{ secrets.GIT_EMAIL }}"
|
||||
# - name: Commit and push updated base digests if changed
|
||||
# run: |
|
||||
# git config user.name "${{ secrets.GIT_USERNAME }}"
|
||||
# git config user.email "${{ secrets.GIT_EMAIL }}"
|
||||
|
||||
changed=false
|
||||
# changed=false
|
||||
|
||||
check_and_update() {
|
||||
name="$1"
|
||||
digest="$2"
|
||||
file=".cache/${name}-base.digest"
|
||||
if [[ ! -f "$file" ]] || [[ "$(cat "$file")" != "$digest" ]]; then
|
||||
echo "$digest" > "$file"
|
||||
echo "[INFO] $name digest changed"
|
||||
changed=true
|
||||
else
|
||||
echo "[INFO] $name digest unchanged"
|
||||
fi
|
||||
}
|
||||
# check_and_update() {
|
||||
# name="$1"
|
||||
# digest="$2"
|
||||
# file=".cache/${name}-base.digest"
|
||||
# if [[ ! -f "$file" ]] || [[ "$(cat "$file")" != "$digest" ]]; then
|
||||
# echo "$digest" > "$file"
|
||||
# echo "[INFO] $name digest changed"
|
||||
# changed=true
|
||||
# else
|
||||
# echo "[INFO] $name digest unchanged"
|
||||
# fi
|
||||
# }
|
||||
|
||||
check_and_update alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||
check_and_update debian "${{ steps.get_digest.outputs.debian_digest }}"
|
||||
check_and_update basic "${{ steps.get_digest.outputs.basic_digest }}"
|
||||
# check_and_update alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||
# check_and_update debian "${{ steps.get_digest.outputs.debian_digest }}"
|
||||
# check_and_update basic "${{ steps.get_digest.outputs.basic_digest }}"
|
||||
|
||||
if [ "$changed" = true ]; then
|
||||
git stash push --include-untracked -m "temp-stash-before-rebase"
|
||||
git fetch origin main
|
||||
git rebase origin/main
|
||||
git stash pop || true
|
||||
# if [ "$changed" = true ]; then
|
||||
# git stash push --include-untracked -m "temp-stash-before-rebase"
|
||||
# git fetch origin main
|
||||
# git rebase origin/main
|
||||
# git stash pop || true
|
||||
|
||||
git add .cache/*-base.digest
|
||||
git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
|
||||
git push origin HEAD:main
|
||||
else
|
||||
echo "[INFO] No base digest changes to commit."
|
||||
fi
|
||||
# git add .cache/*-base.digest
|
||||
# git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
|
||||
# git push origin HEAD:main
|
||||
# else
|
||||
# echo "[INFO] No base digest changes to commit."
|
||||
# fi
|
||||
|
||||
- name: Compare digests and detect changes
|
||||
id: check
|
||||
@@ -99,39 +99,67 @@ jobs:
|
||||
variant=$1
|
||||
new_digest=$2
|
||||
digest_file=".cache/${variant}-base.digest"
|
||||
last_digest=""
|
||||
base_changed=false
|
||||
code_changed=false
|
||||
|
||||
last_digest=""
|
||||
if [ -f "$digest_file" ]; then
|
||||
last_digest=$(cat "$digest_file")
|
||||
fi
|
||||
|
||||
if [ "$last_digest" != "$new_digest" ]; then
|
||||
base_changed=true
|
||||
echo "[INFO] $variant base image changed: $last_digest -> $new_digest"
|
||||
echo "[INFO] $variant base image changed"
|
||||
echo "should_build_${variant}=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "[INFO] $variant base image unchanged"
|
||||
echo "should_build_${variant}=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
# Check if code in the variant directory changed
|
||||
git fetch origin main
|
||||
code_diff=$(git diff --name-only origin/main...HEAD | grep "^$variant/" || true)
|
||||
if [[ -n "$code_diff" ]]; then
|
||||
code_changed=true
|
||||
echo "[INFO] $variant code changed: $code_diff"
|
||||
fi
|
||||
|
||||
should_build=false
|
||||
if [ "$base_changed" = true ] || [ "$code_changed" = true ]; then
|
||||
should_build=true
|
||||
fi
|
||||
|
||||
echo "should_build_${variant}=$should_build" >> $GITHUB_OUTPUT
|
||||
echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
|
||||
}
|
||||
|
||||
check_variant "alpine" "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||
check_variant "debian" "${{ steps.get_digest.outputs.debian_digest }}"
|
||||
check_variant "basic" "${{ steps.get_digest.outputs.basic_digest }}"
|
||||
check_variant alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||
check_variant debian "${{ steps.get_digest.outputs.debian_digest }}"
|
||||
check_variant basic "${{ steps.get_digest.outputs.basic_digest }}"
|
||||
|
||||
# - name: Compare digests and detect changes
|
||||
# id: check
|
||||
# run: |
|
||||
# check_variant() {
|
||||
# variant=$1
|
||||
# new_digest=$2
|
||||
# digest_file=".cache/${variant}-base.digest"
|
||||
# last_digest=""
|
||||
# base_changed=false
|
||||
# code_changed=false
|
||||
|
||||
# if [ -f "$digest_file" ]; then
|
||||
# last_digest=$(cat "$digest_file")
|
||||
# fi
|
||||
|
||||
# if [ "$last_digest" != "$new_digest" ]; then
|
||||
# base_changed=true
|
||||
# echo "[INFO] $variant base image changed: $last_digest -> $new_digest"
|
||||
# fi
|
||||
|
||||
# # Check if code in the variant directory changed
|
||||
# git fetch origin main
|
||||
# code_diff=$(git diff --name-only origin/main...HEAD | grep "^$variant/" || true)
|
||||
# if [[ -n "$code_diff" ]]; then
|
||||
# code_changed=true
|
||||
# echo "[INFO] $variant code changed: $code_diff"
|
||||
# fi
|
||||
|
||||
# should_build=false
|
||||
# if [ "$base_changed" = true ] || [ "$code_changed" = true ]; then
|
||||
# should_build=true
|
||||
# fi
|
||||
|
||||
# echo "should_build_${variant}=$should_build" >> $GITHUB_OUTPUT
|
||||
# echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
|
||||
# }
|
||||
|
||||
# check_variant "alpine" "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||
# check_variant "debian" "${{ steps.get_digest.outputs.debian_digest }}"
|
||||
# check_variant "basic" "${{ steps.get_digest.outputs.basic_digest }}"
|
||||
|
||||
build-alpine:
|
||||
needs: check-for-changes
|
||||
@@ -205,6 +233,45 @@ jobs:
|
||||
echo "[INFO] Building $IMAGE"
|
||||
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE2" ./basic
|
||||
|
||||
update-base-digest-cache:
|
||||
needs:
|
||||
- build-alpine
|
||||
- build-debian
|
||||
- build-basic
|
||||
runs-on: vm-docker-build2
|
||||
if: |
|
||||
needs.build-alpine.outputs.built == 'true' ||
|
||||
needs.build-debian.outputs.built == 'true' ||
|
||||
needs.build-basic.outputs.built == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Update base digest cache
|
||||
run: |
|
||||
git config user.name "${{ secrets.GIT_USERNAME }}"
|
||||
git config user.email "${{ secrets.GIT_EMAIL }}"
|
||||
|
||||
mkdir -p .cache
|
||||
|
||||
[[ "${{ needs.build-alpine.outputs.built }}" == "true" ]] && \
|
||||
echo "${{ needs.check-for-changes.outputs.alpine_digest }}" > .cache/alpine-base.digest
|
||||
|
||||
[[ "${{ needs.build-debian.outputs.built }}" == "true" ]] && \
|
||||
echo "${{ needs.check-for-changes.outputs.debian_digest }}" > .cache/debian-base.digest
|
||||
|
||||
[[ "${{ needs.build-basic.outputs.built }}" == "true" ]] && \
|
||||
echo "${{ needs.check-for-changes.outputs.basic_digest }}" > .cache/basic-base.digest
|
||||
|
||||
if git status --porcelain | grep .; then
|
||||
git add .cache/*-base.digest
|
||||
git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
|
||||
git push
|
||||
else
|
||||
echo "[INFO] No digest updates to commit"
|
||||
fi
|
||||
|
||||
generate-build-info:
|
||||
needs:
|
||||
- build-alpine
|
||||
|
||||
Reference in New Issue
Block a user