ClickHouse
66 строк · 2.6 Кб
1name: Build docker images
2'on':
3workflow_call:
4inputs:
5data:
6description: json with ci data from todo job
7required: true
8type: string
9set_latest:
10description: set latest tag for resulting multiarch manifest
11required: false
12type: boolean
13default: false
14jobs:
15DockerBuildAarch64:
16runs-on: [self-hosted, style-checker-aarch64]
17if: |
18!failure() && !cancelled() && toJson(fromJson(inputs.data).docker_data.missing_aarch64) != '[]'
19steps:
20- name: Check out repository code
21uses: ClickHouse/checkout@v1
22with:
23ref: ${{ fromJson(inputs.data).git_ref }}
24- name: Build images
25run: |
26python3 "${GITHUB_WORKSPACE}/tests/ci/docker_images_check.py" \
27--suffix aarch64 \
28--image-tags '${{ toJson(fromJson(inputs.data).docker_data.images) }}' \
29--missing-images '${{ toJson(fromJson(inputs.data).docker_data.missing_aarch64) }}'
30DockerBuildAmd64:
31runs-on: [self-hosted, style-checker]
32if: |
33!failure() && !cancelled() && toJson(fromJson(inputs.data).docker_data.missing_amd64) != '[]'
34steps:
35- name: Check out repository code
36uses: ClickHouse/checkout@v1
37with:
38ref: ${{ fromJson(inputs.data).git_ref }}
39- name: Build images
40run: |
41python3 "${GITHUB_WORKSPACE}/tests/ci/docker_images_check.py" \
42--suffix amd64 \
43--image-tags '${{ toJson(fromJson(inputs.data).docker_data.images) }}' \
44--missing-images '${{ toJson(fromJson(inputs.data).docker_data.missing_amd64) }}'
45DockerMultiArchManifest:
46needs: [DockerBuildAmd64, DockerBuildAarch64]
47runs-on: [self-hosted, style-checker]
48if: |
49!failure() && !cancelled() && (toJson(fromJson(inputs.data).docker_data.missing_multi) != '[]' || inputs.set_latest)
50steps:
51- name: Check out repository code
52uses: ClickHouse/checkout@v1
53with:
54ref: ${{ fromJson(inputs.data).git_ref }}
55- name: Build images
56run: |
57cd "$GITHUB_WORKSPACE/tests/ci"
58FLAG_LATEST=''
59if [ "${{ inputs.set_latest }}" == "true" ]; then
60FLAG_LATEST='--set-latest'
61echo "latest tag will be set for resulting manifests"
62fi
63python3 docker_manifests_merge.py --suffix amd64 --suffix aarch64 \
64--image-tags '${{ toJson(fromJson(inputs.data).docker_data.images) }}' \
65--missing-images '${{ toJson(fromJson(inputs.data).docker_data.missing_multi) }}' \
66$FLAG_LATEST
67