diff --git a/.github/workflows/images_build_windows.yml b/.github/workflows/images_build_windows.yml index bc1a3eb39..4da338503 100644 --- a/.github/workflows/images_build_windows.yml +++ b/.github/workflows/images_build_windows.yml @@ -187,6 +187,7 @@ jobs: LABEL_REVISION: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} LABEL_CREATED: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} AUTO_PUSH_IMAGES: ${{ env.AUTO_PUSH_IMAGES }} + SHA_SHORT: ${{ needs.init_build.outputs.sha_short }} run: | $context="$Env:DOCKERFILES_DIRECTORY\$Env:BASE_BUILD_NAME\windows\" $dockerfile= $context + 'Dockerfile.' + $Env:MATRIX_COMPONENT @@ -197,34 +198,33 @@ jobs: $tags_array=$( "$Env:TAGS".Split("`n") ) $tags=$( $tags_array | Foreach-Object { "--tag=$_" } ) - echo "docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION --label org.opencontainers.image.created=$Env:LABEL_CREATED --build-arg=BUILD_BASE_IMAGE=$base_os_image --file=$dockerfile $tags $context" + docker version + docker info + docker buildx version - docker pull $base_os_image + docker buildx create --name builder-$Env:SHA_SHORT --driver docker-container ` + --driver-opt image=moby/buildkit:master ` + --buildkitd-flags --allow-insecure-entitlement security.insecure ` + --allow-insecure-entitlement network.host --use + docker buildx inspect --bootstrap --builder builder-$Env:SHA_SHORT - docker build --label org.opencontainers.image.revision=$Env:LABEL_REVISION ` - --label org.opencontainers.image.created=$Env:LABEL_CREATED ` - --build-arg=BUILD_BASE_IMAGE=$base_os_image ` - --cache-from=type=gha,scope=$tags_array[0] ` - --cache-to=type=gha,mode=max,scope=$tags_array[0] ` - --file=$dockerfile ` - $tags ` - $context + docker buildx build --build-arg BUILD_BASE_IMAGE=$base_os_image --file $dockerfile ` + --iidfile $Env:HOME\iidfile ` + --label org.opencontainers.image.revision=$Env:LABEL_REVISION ` + --label org.opencontainers.image.created=$Env:LABEL_CREATED ` + --platform windows/amd64 ` + --cache-from=type=gha,scope=$tags_array[0] ` + --cache-to=type=gha,mode=max,scope=$tags_array[0] ` + $tags ` + --metadata-file $Env:HOME\metadata-file ` + --push ` + $context if (-not $?) {throw "Failed"} - if ( $Env:AUTO_PUSH_IMAGES -eq 'true' ) { - Foreach ($tag in $tags_array) { - echo "docker image push $tag" - docker image push $tag - if (-not $?) {throw "Failed"} - } + $json_data =$(Get-Content $Env:HOME\metadata-file | Out-String | ConvertFrom-Json) + $digest = $json_data.["containerimage.digest"] - $digest=$(docker inspect $tags_array[0] --format "{{ index .RepoDigests 0}}").Split('@')[-1] - if (-not $?) {throw "Failed"} - } - else { - $digest=$(docker inspect $tags_array[0] --format "{{ index .Id}}") - if (-not $?) {throw "Failed"} - } + docker buildx rm builder-$Env:SHA_SHORT echo "digest=$digest" >> $Env:GITHUB_OUTPUT