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 "debian_digest=$debian_digest" >> $GITHUB_OUTPUT
|
||||||
echo "basic_digest=$basic_digest" >> $GITHUB_OUTPUT
|
echo "basic_digest=$basic_digest" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Commit and push updated base digests if changed
|
# - name: Commit and push updated base digests if changed
|
||||||
run: |
|
# run: |
|
||||||
git config user.name "${{ secrets.GIT_USERNAME }}"
|
# git config user.name "${{ secrets.GIT_USERNAME }}"
|
||||||
git config user.email "${{ secrets.GIT_EMAIL }}"
|
# git config user.email "${{ secrets.GIT_EMAIL }}"
|
||||||
|
|
||||||
changed=false
|
# changed=false
|
||||||
|
|
||||||
check_and_update() {
|
# check_and_update() {
|
||||||
name="$1"
|
# name="$1"
|
||||||
digest="$2"
|
# digest="$2"
|
||||||
file=".cache/${name}-base.digest"
|
# file=".cache/${name}-base.digest"
|
||||||
if [[ ! -f "$file" ]] || [[ "$(cat "$file")" != "$digest" ]]; then
|
# if [[ ! -f "$file" ]] || [[ "$(cat "$file")" != "$digest" ]]; then
|
||||||
echo "$digest" > "$file"
|
# echo "$digest" > "$file"
|
||||||
echo "[INFO] $name digest changed"
|
# echo "[INFO] $name digest changed"
|
||||||
changed=true
|
# changed=true
|
||||||
else
|
# else
|
||||||
echo "[INFO] $name digest unchanged"
|
# echo "[INFO] $name digest unchanged"
|
||||||
fi
|
# fi
|
||||||
}
|
# }
|
||||||
|
|
||||||
check_and_update alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
# check_and_update alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||||
check_and_update debian "${{ steps.get_digest.outputs.debian_digest }}"
|
# check_and_update debian "${{ steps.get_digest.outputs.debian_digest }}"
|
||||||
check_and_update basic "${{ steps.get_digest.outputs.basic_digest }}"
|
# check_and_update basic "${{ steps.get_digest.outputs.basic_digest }}"
|
||||||
|
|
||||||
if [ "$changed" = true ]; then
|
# if [ "$changed" = true ]; then
|
||||||
git stash push --include-untracked -m "temp-stash-before-rebase"
|
# git stash push --include-untracked -m "temp-stash-before-rebase"
|
||||||
git fetch origin main
|
# git fetch origin main
|
||||||
git rebase origin/main
|
# git rebase origin/main
|
||||||
git stash pop || true
|
# git stash pop || true
|
||||||
|
|
||||||
git add .cache/*-base.digest
|
# git add .cache/*-base.digest
|
||||||
git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
|
# git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
|
||||||
git push origin HEAD:main
|
# git push origin HEAD:main
|
||||||
else
|
# else
|
||||||
echo "[INFO] No base digest changes to commit."
|
# echo "[INFO] No base digest changes to commit."
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
- name: Compare digests and detect changes
|
- name: Compare digests and detect changes
|
||||||
id: check
|
id: check
|
||||||
@@ -99,39 +99,67 @@ jobs:
|
|||||||
variant=$1
|
variant=$1
|
||||||
new_digest=$2
|
new_digest=$2
|
||||||
digest_file=".cache/${variant}-base.digest"
|
digest_file=".cache/${variant}-base.digest"
|
||||||
last_digest=""
|
|
||||||
base_changed=false
|
|
||||||
code_changed=false
|
|
||||||
|
|
||||||
|
last_digest=""
|
||||||
if [ -f "$digest_file" ]; then
|
if [ -f "$digest_file" ]; then
|
||||||
last_digest=$(cat "$digest_file")
|
last_digest=$(cat "$digest_file")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$last_digest" != "$new_digest" ]; then
|
if [ "$last_digest" != "$new_digest" ]; then
|
||||||
base_changed=true
|
echo "[INFO] $variant base image changed"
|
||||||
echo "[INFO] $variant base image changed: $last_digest -> $new_digest"
|
echo "should_build_${variant}=true" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "[INFO] $variant base image unchanged"
|
||||||
|
echo "should_build_${variant}=false" >> $GITHUB_OUTPUT
|
||||||
fi
|
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
|
echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
|
||||||
}
|
}
|
||||||
|
|
||||||
check_variant "alpine" "${{ steps.get_digest.outputs.alpine_digest }}"
|
check_variant alpine "${{ steps.get_digest.outputs.alpine_digest }}"
|
||||||
check_variant "debian" "${{ steps.get_digest.outputs.debian_digest }}"
|
check_variant debian "${{ steps.get_digest.outputs.debian_digest }}"
|
||||||
check_variant "basic" "${{ steps.get_digest.outputs.basic_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:
|
build-alpine:
|
||||||
needs: check-for-changes
|
needs: check-for-changes
|
||||||
@@ -205,6 +233,45 @@ jobs:
|
|||||||
echo "[INFO] Building $IMAGE"
|
echo "[INFO] Building $IMAGE"
|
||||||
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE2" ./basic
|
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:
|
generate-build-info:
|
||||||
needs:
|
needs:
|
||||||
- build-alpine
|
- build-alpine
|
||||||
|
|||||||
Reference in New Issue
Block a user