From b5bec9722da001097387a2c829f76ec0f3957fcf Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Thu, 19 Mar 2026 00:05:30 +0800 Subject: [PATCH] chore(ci): use verified build push action --- .github/actions/docker-build-push/action.yml | 111 ------------------- .github/workflows/build-images.yml | 2 +- 2 files changed, 1 insertion(+), 112 deletions(-) delete mode 100644 .github/actions/docker-build-push/action.yml diff --git a/.github/actions/docker-build-push/action.yml b/.github/actions/docker-build-push/action.yml deleted file mode 100644 index 76ce5b7..0000000 --- a/.github/actions/docker-build-push/action.yml +++ /dev/null @@ -1,111 +0,0 @@ -name: Docker Build Push -description: Build and push Docker images using docker buildx - -inputs: - context: - description: Build context - required: false - default: . - file: - description: Dockerfile path - required: false - default: Dockerfile - platforms: - description: Build platforms - required: false - default: linux/amd64 - push: - description: Push image - required: false - default: false - tags: - description: Image tags - required: false - build-args: - description: Build arguments - required: false - labels: - description: Build labels - required: false - cache-from: - description: Cache sources - required: false - cache-to: - description: Cache destinations - required: false - outputs: - description: Build outputs - required: false - -outputs: - digest: - description: Image digest - value: ${{ steps.build.outputs.digest }} - -runs: - using: composite - steps: - - shell: bash - id: build - run: | - set -euo pipefail - - # Parse build args - BUILD_ARGS="" - if [ -n "${{ inputs.build-args }}" ]; then - echo "${{ inputs.build-args }}" | while IFS= read -r line; do - [ -n "$line" ] && BUILD_ARGS="$BUILD_ARGS --build-arg $line" - done - fi - - # Parse labels - LABELS="" - if [ -n "${{ inputs.labels }}" ]; then - echo "${{ inputs.labels }}" | while IFS= read -r line; do - [ -n "$line" ] && LABELS="$LABELS --label $line" - done - fi - - # Parse outputs - OUTPUTS="" - if [ -n "${{ inputs.outputs }}" ]; then - OUTPUTS="--output ${{ inputs.outputs }}" - elif [ "${{ inputs.push }}" = "true" ]; then - OUTPUTS="--type=registry" - else - OUTPUTS="--type=image,push=false" - fi - - # Parse tags - TAGS_ARG="" - if [ -n "${{ inputs.tags }}" ]; then - TAGS_ARG="--tag $(echo '${{ inputs.tags }}' | tr '\n' ' ' | sed 's/ */ --tag /g')" - fi - - # Build command - echo "::group::Docker Buildx Build" - docker buildx build \ - --platform ${{ inputs.platforms }} \ - --file ${{ inputs.file }} \ - $TAGS_ARG \ - $BUILD_ARGS \ - $LABELS \ - $OUTPUTS \ - --progress=plain \ - ${{ inputs.context }} - - BUILD_STATUS=$? - - # Get digest if successful - if [ $BUILD_STATUS -eq 0 ] && [ "${{ inputs.push }}" = "true" ]; then - # Extract first tag - FIRST_TAG=$(echo "${{ inputs.tags }}" | head -n1) - # Get image digest by pulling image info - DIGEST=$(docker buildx imagetools inspect $FIRST_TAG --format '{{json .Manifest.Digest}}' 2>/dev/null || echo "") - if [ -n "$DIGEST" ]; then - echo "digest=$DIGEST" >> $GITHUB_OUTPUT - fi - fi - - exit $BUILD_STATUS - echo "::endgroup::" diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml index 5d1b923..65ef5c9 100644 --- a/.github/workflows/build-images.yml +++ b/.github/workflows/build-images.yml @@ -45,7 +45,7 @@ jobs: - name: Build Service Image (per-arch) id: build - uses: ./.github/actions/docker-build-push + uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 with: context: ${{ matrix.service.workdir }} file: ${{ matrix.service.dockerfile }}