-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.gitlab-ci.yml
59 lines (56 loc) · 1.32 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
stages:
- pre-build
- build
list-tags:
stage: pre-build
only:
- master
image: everpeace/curl-jq
variables:
BASE_TAGS_API_URL: https://hub.docker.com/v2/repositories/drupaldocker/php/tags/?page_size=9999
BASE_TAGS_FILTER: apache
script:
- curl --insecure --silent $BASE_TAGS_API_URL | jq '."results"[]["name"]' --raw-output | grep $BASE_TAGS_FILTER > tags_list.txt
artifacts:
untracked: true
.paralel-build: ¶lel-build
stage: build
image: docker:latest
services:
- docker:dind
only:
- master
variables:
JOBS_NUMBER: 10
script:
# Select tags to process
- export TAGS=$(awk "NR % $JOBS_NUMBER == ${CI_JOB_NAME#'build '}" tags_list.txt)
# Login to image registry
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- |
for TAG in ${TAGS//\\n/ }
do
docker build --pull -t "$CI_REGISTRY_IMAGE:$TAG" --build-arg "BASE_IMAGE_TAG=$TAG" .
docker push "$CI_REGISTRY_IMAGE:$TAG"
done
# Fake "build matrix" feature
build 0:
<<: *paralel-build
build 1:
<<: *paralel-build
build 2:
<<: *paralel-build
build 3:
<<: *paralel-build
build 4:
<<: *paralel-build
build 5:
<<: *paralel-build
build 6:
<<: *paralel-build
build 7:
<<: *paralel-build
build 8:
<<: *paralel-build
build 9:
<<: *paralel-build