updated wf

This commit is contained in:
estebanthi
2026-01-04 12:54:04 +01:00
parent 1440e4796c
commit 81a34e348c

View File

@@ -56,6 +56,11 @@ jobs:
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
- name: Install Trivy
run: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b /usr/local/bin
trivy --version
- name: Login to registry - name: Login to registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
@@ -79,12 +84,13 @@ jobs:
CONTEXT=$(echo "$img" | jq -r '.context') CONTEXT=$(echo "$img" | jq -r '.context')
DOCKERFILE=$(echo "$img" | jq -r '.dockerfile') DOCKERFILE=$(echo "$img" | jq -r '.dockerfile')
TARGET=$(echo "$img" | jq -r '.target') TARGET=$(echo "$img" | jq -r '.target')
CACHE_REF=$(echo "$img" | jq -r '.cache_ref') RAW_REF_NAME="${{ github.ref_name }}"
SAFE_REF_NAME=$(echo "$RAW_REF_NAME" | sed -E 's#[^A-Za-z0-9_.-]#-#g')
echo "==== Building $FULL_IMAGE ===="
echo "==== Building $NAME ===="
TAGS=() TAGS=()
TAGS+=("$FULL_IMAGE:${{ github.ref_name }}") TAGS+=("$FULL_IMAGE:$SAFE_REF_NAME")
TAGS+=("$FULL_IMAGE:${{ github.sha }}") TAGS+=("$FULL_IMAGE:${{ github.sha }}")
if [ "${{ steps.branch.outputs.is_default }}" = "true" ]; then if [ "${{ steps.branch.outputs.is_default }}" = "true" ]; then
@@ -92,24 +98,28 @@ jobs:
fi fi
TAG_ARGS=$(printf -- "--tag %s " "${TAGS[@]}") TAG_ARGS=$(printf -- "--tag %s " "${TAGS[@]}")
BUILD_ARG_FLAGS=""
if [ -n "$BUILD_ARGS" ]; then
BUILD_ARG_FLAGS=$(printf -- "--build-arg %s " $BUILD_ARGS)
fi
docker buildx build \ docker buildx build \
--file "$DOCKERFILE" \ --file "$DOCKERFILE" \
--target "$TARGET" \ --target "$TARGET" \
--cache-from "type=registry,ref=$CACHE_REF" --cache-from "type=registry,ref=$CACHE_REF" \
--cache-to "type=registry,ref=$CACHE_REF,mode=max" --cache-to "type=registry,ref=$CACHE_REF,mode=max" \
--load \ --load \
$TAG_ARGS \ $TAG_ARGS \
$(printf -- "--build-arg %s " $BUILD_ARGS) \ $BUILD_ARG_FLAGS \
"$CONTEXT" "$CONTEXT"
echo "==== Trivy scan for $NAME ====" echo "==== Trivy scan for $FULL_IMAGE ===="
trivy image \ trivy image \
--severity "$TRIVY_SEVERITY" \ --severity "$TRIVY_SEVERITY" \
--exit-code 1 \ --exit-code 1 \
"${TAGS[0]}" "${TAGS[0]}"
echo "==== Pushing $NAME ====" echo "==== Pushing $FULL_IMAGE ===="
for tag in "${TAGS[@]}"; do for tag in "${TAGS[@]}"; do
docker push "$tag" docker push "$tag"
done done