From ea0698786f93a4cc4a7947f8516c5b42eab9729c Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Fri, 8 Oct 2021 17:08:55 +0200 Subject: [PATCH] Updated build script --- .github/workflows/images_build_windows.yml | 91 +++++-------------- .../build-base/windows/Dockerfile.agent2 | 3 +- 2 files changed, 27 insertions(+), 67 deletions(-) diff --git a/.github/workflows/images_build_windows.yml b/.github/workflows/images_build_windows.yml index 43d8e84d8..0e3c7a325 100644 --- a/.github/workflows/images_build_windows.yml +++ b/.github/workflows/images_build_windows.yml @@ -37,7 +37,6 @@ jobs: - name: Check build.json file id: build_exists run: | - docker build --help if (-not(Test-Path -Path "./build.json" -PathType Leaf)) { throw "::error::File build.json is missing" } @@ -141,62 +140,55 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Prepare Platform list - id: platform - run: | - platform_list=$(jq -r '.os.${{ matrix.os }} | join(",")' "./build.json") - - echo ::set-output name=list::$platform_list - - name: Generate tags id: meta uses: docker/metadata-action@v3 with: images: ${{ env.DOCKER_REPOSITORY }}/zabbix-${{ matrix.build }} tags: | - type=ref,event=branch,prefix=${{ matrix.os }}- - type=ref,event=branch,suffix=-${{ matrix.os }} + type=ref,event=branch,prefix=${{ matrix.build }}-${{ matrix.os }}- + type=ref,event=branch,suffix=-${{ matrix.os }},prefix=${{ matrix.build }}- flavor: | latest=false - name: Download SHA256 tag build-base:${{ matrix.os }} uses: actions/download-artifact@v2.0.10 with: - name: build-base_${{ matrix.os }} + name: ${{ env.BASE_BUILD_NAME }}_${{ matrix.os }}_${{ matrix.build }} - name: Retrieve build-base:${{ matrix.os }} SHA256 tag id: base_build run: | - BASE_TAG=$(cat build-base_${{ matrix.os }}) + BASE_TAG=$(cat build-base_${{ matrix.os }}_${{ matrix.build }}) BUILD_BASE_IMAGE=${{ env.DOCKER_REPOSITORY }}/zabbix-build-base@${BASE_TAG} echo ::set-output name=base_tag::${BASE_TAG} echo ::set-output name=base_build_image::${BUILD_BASE_IMAGE} - - name: Build ${{ matrix.build }}/${{ matrix.os }} and push + - name: Build ${{ matrix.build }}/${{ matrix.os }}:${{ matrix.os }} and push id: docker_build - uses: docker/build-push-action@v2 - with: - context: ./Dockerfiles/${{ matrix.build }}/${{ matrix.os }} - file: ./Dockerfiles/${{ matrix.build }}/${{ matrix.os }}/Dockerfile - platforms: ${{ steps.platform.outputs.list }} - push: false - tags: ${{ steps.meta.outputs.tags }} - build-args: BUILD_BASE_IMAGE=${{ steps.base_build.outputs.base_build_image }} - labels: | - org.opencontainers.image.revision=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} - org.opencontainers.image.created=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} - - - name: Image digest run: | - echo ${{ steps.docker_build.outputs.digest }} - echo "${{ steps.docker_build.outputs.digest }}" > ${{ matrix.build }}_${{ matrix.os }} + $tags_array=$( "${{ steps.meta.outputs.tags}}".Split("`r`n") ) + $tags=$($tags_array | Foreach-Object { "--tag=$_" }) + + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + + echo "docker build --file=.\Dockerfiles\build-mysql\windows\Dockerfile.${{ matrix.build }} $tags .\Dockerfiles\build-mysql\windows\" + docker build --build-arg=BUILD_BASE_IMAGE=${{ steps.base_build.outputs.base_build_image }} --file=.\Dockerfiles\build-mysql\windows\Dockerfile.${{ matrix.build }} $tags .\Dockerfiles\build-mysql\windows\ + + echo "docker push image push --all-tags $tags_array[0]" + docker image push --all-tags $tags_array[0] + docker logout + + $digest=$(docker inspect $tags_array[0] --format "{{.Id}}") + echo $digest + echo "$digest" > base-mysql_${{ matrix.os }}_${{ matrix.build }}) - name: Upload SHA256 tag uses: actions/upload-artifact@v2.2.4 with: - name: ${{ matrix.build }}_${{ matrix.os }} - path: ${{ matrix.build }}_${{ matrix.os }} + name: base-mysql_${{ matrix.os }}_${{ matrix.build }}) + path: base-mysql_${{ matrix.os }}_${{ matrix.build }}) if-no-files-found: error build_images: @@ -213,37 +205,6 @@ jobs: steps: - uses: actions/checkout@v2.3.4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Prepare Platform list - id: platform - run: | - # Chromium on Alpine is available only on linux/amd64, linux/arm64 platforms - if [ "${{ matrix.os }}" == "alpine" ] && [ "${{ matrix.build }}" == "web-service" ]; then - platform_list="linux/amd64,linux/arm64" - else - platform_list=$(jq -r '.os.${{ matrix.os }} | join(",")' "./build.json") - fi - - echo ::set-output name=list::$platform_list - - - name: Detect Build Base Image - id: build_base_image - run: | - BUILD_BASE=$(jq -r '.components."${{ matrix.build }}"' "./build.json") - - echo ::set-output name=build_base::${BUILD_BASE} - - name: Generate tags id: meta uses: docker/metadata-action@v3 @@ -257,16 +218,14 @@ jobs: - name: Download SHA256 tag for ${{ steps.build_base_image.outputs.build_base }}:${{ matrix.os }} uses: actions/download-artifact@v2.0.10 - if: ${{ matrix.build != 'snmptraps' }} with: - name: ${{ steps.build_base_image.outputs.build_base }}_${{ matrix.os }} + name: base-mysql_${{ matrix.os }}_${{ matrix.build }} - name: Retrieve ${{ steps.build_base_image.outputs.build_base }}:${{ matrix.os }} SHA256 tag id: base_build - if: ${{ matrix.build != 'snmptraps' }} run: | - BASE_TAG=$(cat ${{ steps.build_base_image.outputs.build_base }}_${{ matrix.os }}) - BUILD_BASE_IMAGE=${{ env.DOCKER_REPOSITORY }}/zabbix-${{ steps.build_base_image.outputs.build_base }}@${BASE_TAG} + BASE_TAG=$(cat ${{ base-mysql_${{ matrix.os }}_${{ matrix.build }} ) + BUILD_BASE_IMAGE=${{ env.DOCKER_REPOSITORY }}/zabbix-build-mysql@${BASE_TAG} echo ::set-output name=base_tag::${BASE_TAG} echo ::set-output name=base_build_image::${BUILD_BASE_IMAGE} diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index ca6293423..46a4d5530 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -113,8 +113,9 @@ RUN Set-Location -Path $env:SystemDrive\.; ` 7z -h | Select -first 2; ` ` Write-Host ('Downloading {0} ...' -f $env:MINGW_URL); ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12; ` [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }; ` + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12; ` Invoke-WebRequest -OutFile $env:SystemDrive\mingw.7z -Uri $env:MINGW_URL; ` ` $sha256 = 'e8c65ddc655534b0330f66f7b480565621e8617cda9937d76ba141a22bf3b2fa'; `