diff --git a/.github/workflows/images_build.yml b/.github/workflows/images_build.yml index e9a71f614..bd86b8a9d 100644 --- a/.github/workflows/images_build.yml +++ b/.github/workflows/images_build.yml @@ -12,6 +12,7 @@ on: - 'trunk' paths: - 'Dockerfiles/**' + - 'build.json' - '!**/README.md' - '!Dockerfiles/*/rhel/*' - '!Dockerfiles/*/windows/*' @@ -95,7 +96,7 @@ jobs: echo "::set-output name=is_default_branch::$result" build_base: - timeout-minutes: 90 + timeout-minutes: 30 name: Build base on ${{ matrix.os }} needs: init_build strategy: @@ -110,12 +111,16 @@ jobs: with: fetch-depth: 1 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1.2.0 + with: + image: tonistiigi/binfmt:latest + platforms: all - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v1.6.0 + with: + driver-opts: image=moby/buildkit:master - name: Login to DockerHub uses: docker/login-action@v1 @@ -127,6 +132,7 @@ jobs: id: platform run: | platform_list=$(jq -r '.["os-linux"].${{ matrix.os }} | join(",")' "./build.json") + platform_list="${platform_list%,}" echo ::set-output name=list::$platform_list @@ -170,7 +176,7 @@ jobs: if-no-files-found: error build_base_database: - timeout-minutes: 70 + timeout-minutes: 120 needs: [ "build_base", "init_build"] name: Build ${{ matrix.build }} base on ${{ matrix.os }} strategy: @@ -185,10 +191,15 @@ jobs: uses: actions/checkout@v2.3.4 - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v1.2.0 + with: + image: tonistiigi/binfmt:latest + platforms: all - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v1.6.0 + with: + driver-opts: image=moby/buildkit:master - name: Login to DockerHub uses: docker/login-action@v1 @@ -200,6 +211,7 @@ jobs: id: platform run: | platform_list=$(jq -r '.["os-linux"].${{ matrix.os }} | join(",")' "./build.json") + platform_list="${platform_list%,}" echo ::set-output name=list::$platform_list @@ -258,7 +270,7 @@ jobs: if-no-files-found: error build_images: - timeout-minutes: 70 + timeout-minutes: 90 needs: [ "build_base_database", "init_build"] name: Build ${{ matrix.build }} on ${{ matrix.os }} strategy: @@ -272,10 +284,15 @@ jobs: - uses: actions/checkout@v2.3.4 - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v1.2.0 + with: + image: tonistiigi/binfmt:latest + platforms: all - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v1.6.0 + with: + driver-opts: image=moby/buildkit:master - name: Login to DockerHub uses: docker/login-action@v1 @@ -287,12 +304,27 @@ jobs: id: platform run: | # Chromium on Alpine is available only on linux/amd64, linux/arm64 platforms - if [ "${{ matrix.os }}" == "alpine" ] && [ "${{ matrix.build }}" == "web-service" ]; then + if ([ "${{ matrix.os }}" == "alpine" ] || [ "${{ matrix.os }}" == "centos" ]) && [ "${{ matrix.build }}" == "web-service" ]; then platform_list="linux/amd64,linux/arm64" + # Chromium on Ubuntu is not available on s390x platform + elif [ "${{ matrix.os }}" == "ubuntu" ] && [ "${{ matrix.build }}" == "web-service" ]; then + platform_list="linux/amd64,linux/arm/v7,linux/arm64" else platform_list=$(jq -r '.["os-linux"].${{ matrix.os }} | join(",")' "./build.json") fi + # Build only Agent and Agent2 on 386 + if [ "${{ matrix.build }}" != "agent"* ]; then + platform_list="${platform_list#linux/386,}" + fi + + # Can not compile Java applications on ppc64le + if [ "${{ matrix.build }}" == "java-gateway" ]; then + platform_list="${platform_list%linux/ppc64le}" + fi + + platform_list="${platform_list%,}" + echo ::set-output name=list::$platform_list - name: Detect Build Base Image diff --git a/Dockerfiles/build-mysql/alpine/Dockerfile b/Dockerfiles/build-mysql/alpine/Dockerfile index 9ad99b877..320783588 100644 --- a/Dockerfiles/build-mysql/alpine/Dockerfile +++ b/Dockerfiles/build-mysql/alpine/Dockerfile @@ -20,6 +20,25 @@ LABEL org.opencontainers.image.authors="Alexey Pustovalov