1+ # docker-openresty .travis.yml
2+ #
3+ # Builds docker-openresty images on Travis CI
4+ #
5+ # https://travis-ci.com/github/openresty/docker-openresty
6+ #
7+ #
8+ # Master will build with Docker tag:
9+ # openresty:<flavor>
10+ #
11+ # Releases should be tagged in git as:
12+ # <openresty-version>-<docker-version>
13+ #
14+ # This will build with Docker tags:
15+ # openresty:<openresty-version>-<docker-version>-<flavor>
16+ # openresty:<openresty-version>-<flavor>
17+ #
18+
19+ os : linux
20+ dist : focal
21+ language : generic
22+
23+ addons :
24+ apt :
25+ sources :
26+ - sourceline : ' deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable'
27+ key_url : ' https://download.docker.com/linux/ubuntu/gpg'
28+ packages :
29+ - docker-ce
30+ - docker-ce-cli
31+
32+ services :
33+ - docker
34+
35+ stages :
36+ - build
37+ - manifest
38+ - build-fat
39+ - manifest-fat
40+
41+ before_script :
42+ - echo $DOCKER_PASSWORD > /tmp/docker.pass
43+ - echo $DOCKER_MIRROR_PASSWORD > /tmp/docker_mirror.pass
44+
45+ jobs :
46+ include :
47+ # ##############################################################################
48+ # Build From Source Flavors
49+ # These take longer to build and are put in their own jobs
50+ # ##############################################################################
51+
52+ - name : Build Docker image for build-from-source flavors -- alpine / aarch64
53+ stage : build
54+ arch : arm64
55+ script :
56+ - ./docker_build_and_push_flavor.sh alpine-aarch64 alpine/Dockerfile
57+
58+ - name : Build Docker image for build-from-source flavors -- alpine / amd64
59+ stage : build
60+ arch : amd64
61+ script :
62+ - ./docker_build_and_push_flavor.sh alpine-amd64 alpine/Dockerfile
63+
64+ - name : Build Docker image for build-from-source flavors -- alpine-slim / aarch64
65+ stage : build
66+ arch : arm64
67+ script :
68+ - ./docker_build_and_push_flavor.sh alpine-slim-aarch64 alpine/Dockerfile --build-arg RESTY_STRIP_BINARIES="1"
69+
70+ - name : Build Docker image for build-from-source flavors -- alpine-slim / amd64
71+ stage : build
72+ arch : amd64
73+ script :
74+ - ./docker_build_and_push_flavor.sh alpine-slim-amd64 alpine/Dockerfile --build-arg RESTY_STRIP_BINARIES="1"
75+
76+ - name : Build Docker image for build-from-source flavor -- bionic / aarch64
77+ arch : arm64
78+ stage : build
79+ script :
80+ - ./docker_build_and_push_flavor.sh bionic-aarch64 bionic/Dockerfile
81+
82+ - name : Build Docker image for build-from-source flavor -- bionic / amd64
83+ arch : amd64
84+ stage : build
85+ script :
86+ - ./docker_build_and_push_flavor.sh bionic-amd64 bionic/Dockerfile
87+
88+ - name : Build Docker image for build-from-source flavor -- bionic / s390x
89+ arch : s390x
90+ stage : build
91+ script :
92+ - ./docker_build_and_push_flavor.sh bionic-s390x bionic/Dockerfile
93+
94+ - name : Build Docker image for build-from-source flavor -- focal / aarch64
95+ arch : arm64
96+ stage : build
97+ script :
98+ - ./docker_build_and_push_flavor.sh focal-aarch64 focal/Dockerfile
99+
100+ - name : Build Docker image for build-from-source flavor -- focal / amd64
101+ arch : amd64
102+ stage : build
103+ script :
104+ - ./docker_build_and_push_flavor.sh focal-amd64 focal/Dockerfile
105+
106+ - name : Build Docker image for build-from-source flavor -- focal / s390x
107+ arch : s390x
108+ stage : build
109+ script :
110+ - ./docker_build_and_push_flavor.sh focal-s390x focal/Dockerfile
111+
112+ - name : Build Docker image for build-from-source flavor -- jammy / aarch64
113+ arch : arm64
114+ stage : build
115+ script :
116+ - ./docker_build_and_push_flavor.sh jammy-aarch64 jammy/Dockerfile
117+
118+ - name : Build Docker image for build-from-source flavor -- jammy / amd64
119+ arch : amd64
120+ stage : build
121+ script :
122+ - ./docker_build_and_push_flavor.sh jammy-amd64 jammy/Dockerfile
123+
124+ - name : Build Docker image for build-from-source flavor -- jammy / s390x
125+ arch : s390x
126+ stage : build
127+ script :
128+ - ./docker_build_and_push_flavor.sh jammy-s390x jammy/Dockerfile
129+
130+ - name : Build Docker image for build-from-source flavor -- noble / aarch64
131+ arch : arm64
132+ stage : build
133+ script :
134+ - ./docker_build_and_push_flavor.sh noble-aarch64 noble/Dockerfile
135+
136+ - name : Build Docker image for build-from-source flavor -- noble / amd64
137+ arch : amd64
138+ stage : build
139+ script :
140+ - ./docker_build_and_push_flavor.sh noble-amd64 noble/Dockerfile
141+
142+ - name : Build Docker image for build-from-source flavor -- noble / s390x
143+ arch : s390x
144+ stage : build
145+ script :
146+ - ./docker_build_and_push_flavor.sh noble-s390x noble/Dockerfile
147+
148+ # ##############################################################################
149+ # Build From OpenResty Upstream Flavors
150+ # These are shorter to build are put in the same job (per architecture)
151+ # ##############################################################################
152+
153+ - name : Build Docker image for upstream flavors -- aarch64
154+ arch : arm64
155+ stage : build
156+ script :
157+ - ./docker_build_and_push_flavor.sh alpine-apk-aarch64 alpine-apk/Dockerfile
158+ - ./docker_build_and_push_flavor.sh amzn2-aarch64 centos/Dockerfile --build-arg RESTY_IMAGE_BASE=amazonlinux --build-arg RESTY_IMAGE_TAG=2 --build-arg RESTY_YUM_REPO="https://openresty.org/package/amazon/openresty.repo" --build-arg RESTY_RPM_DIST="amzn2" --build-arg RESTY_RPM_ARCH="aarch64"
159+ - ./docker_build_and_push_flavor.sh rocky-aarch64 fedora/Dockerfile --build-arg RESTY_IMAGE_BASE=rockylinux --build-arg RESTY_IMAGE_TAG=8.5 --build-arg RESTY_YUM_REPO="https://openresty.org/package/rocky/openresty.repo" --build-arg RESTY_RPM_DIST="el8" --build-arg RESTY_RPM_ARCH="aarch64"
160+ - ./docker_build_and_push_flavor.sh centos-aarch64 centos/Dockerfile --build-arg RESTY_RPM_ARCH=aarch64
161+ - ./docker_build_and_push_flavor.sh centos7-aarch64 centos7/Dockerfile --build-arg RESTY_RPM_ARCH=aarch64
162+ - ./docker_build_and_push_flavor.sh fedora-aarch64 fedora/Dockerfile --build-arg RESTY_RPM_ARCH=aarch64
163+ - ./docker_build_and_push_flavor.sh bookworm-aarch64 bookworm/Dockerfile --build-arg RESTY_APT_REPO="https://openresty.org/package/arm64/debian" --build-arg RESTY_APT_ARCH="arm64"
164+ - ./docker_build_and_push_flavor.sh bookworm-buildpack-aarch64 bookworm/Dockerfile.buildpack --build-arg RESTY_APT_REPO="https://openresty.org/package/arm64/debian" --build-arg RESTY_APT_ARCH="arm64"
165+ - ./docker_build_and_push_flavor.sh bullseye-aarch64 bullseye/Dockerfile --build-arg RESTY_APT_REPO="https://openresty.org/package/arm64/debian"
166+ - ./docker_build_and_push_flavor.sh bullseye-debug-aarch64 bullseye/Dockerfile.debug --build-arg RESTY_APT_REPO="https://openresty.org/package/arm64/debian"
167+ - ./docker_build_and_push_flavor.sh bullseye-valgrind-aarch64 bullseye/Dockerfile.valgrind --build-arg RESTY_APT_REPO="https://openresty.org/package/arm64/debian"
168+
169+ - name : Build Docker image for upstream flavors -- amd64
170+ arch : amd64
171+ stage : build
172+ script :
173+ - ./docker_build_and_push_flavor.sh alpine-apk-amd64 alpine-apk/Dockerfile
174+ - ./docker_build_and_push_flavor.sh amzn2-amd64 centos/Dockerfile --build-arg RESTY_IMAGE_BASE=amazonlinux --build-arg RESTY_IMAGE_TAG=2 --build-arg RESTY_YUM_REPO="https://openresty.org/package/amazon/openresty.repo" --build-arg RESTY_RPM_DIST="amzn2"
175+ - ./docker_build_and_push_flavor.sh rocky-amd64 fedora/Dockerfile --build-arg RESTY_IMAGE_BASE=rockylinux --build-arg RESTY_IMAGE_TAG=8.5 --build-arg RESTY_YUM_REPO="https://openresty.org/package/rocky/openresty.repo" --build-arg RESTY_RPM_DIST="el8"
176+ - ./docker_build_and_push_flavor.sh centos-amd64 centos/Dockerfile
177+ - ./docker_build_and_push_flavor.sh centos7-amd64 centos7/Dockerfile
178+ - ./docker_build_and_push_flavor.sh fedora-amd64 fedora/Dockerfile
179+ - ./docker_build_and_push_flavor.sh bookworm-amd64 bookworm/Dockerfile
180+ - ./docker_build_and_push_flavor.sh bookworm-buildpack-amd64 bookworm/Dockerfile.buildpack
181+ - ./docker_build_and_push_flavor.sh bullseye-amd64 bullseye/Dockerfile
182+ - ./docker_build_and_push_flavor.sh bullseye-debug-amd64 bullseye/Dockerfile.debug
183+ - ./docker_build_and_push_flavor.sh bullseye-valgrind-amd64 bullseye/Dockerfile.valgrind
184+
185+ # ##############################################################################
186+ # Multi-arch manifests
187+ # ##############################################################################
188+
189+ # also master bookworm gets tagged "latest"
190+ - name : Create and push manifests for multi-arch images
191+ stage : manifest
192+ script :
193+ - ./docker_manifest.sh alpine alpine-amd64 alpine-aarch64
194+ - ./docker_manifest.sh alpine-slim alpine-slim-amd64 alpine-slim-aarch64
195+ - ./docker_manifest.sh alpine-apk alpine-apk-amd64 alpine-apk-aarch64
196+ - ./docker_manifest.sh amzn2 amzn2-amd64 amzn2-aarch64
197+ - ./docker_manifest.sh bionic bionic-amd64 bionic-aarch64 bionic-s390x
198+ - ./docker_manifest.sh bookworm bookworm-amd64 bookworm-aarch64
199+ - ./docker_manifest.sh bookworm-buildpack bookworm-buildpack-amd64 bookworm-buildpack-aarch64
200+ - ./docker_manifest.sh bullseye bullseye-amd64 bullseye-aarch64
201+ - ./docker_manifest.sh bullseye-debug bullseye-debug-amd64 bullseye-debug-aarch64
202+ - ./docker_manifest.sh bullseye-valgrind bullseye-valgrind-amd64 bullseye-valgrind-aarch64
203+ - ./docker_manifest.sh centos centos-amd64 centos-aarch64
204+ - ./docker_manifest.sh centos7 centos7-amd64 centos7-aarch64
205+ - ./docker_manifest.sh fedora fedora-amd64 # fedora-aarch64
206+ - ./docker_manifest.sh focal focal-amd64 focal-aarch64 focal-s390x
207+ - ./docker_manifest.sh jammy jammy-amd64 jammy-aarch64 jammy-s390x
208+ - ./docker_manifest.sh noble noble-amd64 noble-aarch64 noble-s390x
209+ - ./docker_manifest.sh rocky rocky-amd64 rocky-aarch64
210+ - ./docker_tag_alias.sh centos centos-rpm
211+ - ./docker_tag_alias.sh fedora fedora-rpm
212+ - if [[ "$TRAVIS_BRANCH" == "master" ]] ; then
213+ echo "$DOCKER_PASSWORD" | docker login -u="$DOCKER_USERNAME" --password-stdin &&
214+ docker pull $DOCKER_ORG/openresty:bookworm &&
215+ docker tag $DOCKER_ORG/openresty:bookworm $DOCKER_ORG/openresty:latest &&
216+ docker push $DOCKER_ORG/openresty:latest ;
217+ fi
218+
219+ # ##############################################################################
220+ # Build Derived ("fat") Flavors
221+ # Built after other images
222+ # ##############################################################################
223+
224+ - name : Build fat Docker image -- aarch64
225+ stage : build-fat
226+ arch : arm64
227+ script :
228+ - ./docker_build_and_push_flavor_fat.sh bookworm-fat-aarch64 bookworm/Dockerfile.fat
229+ - ./docker_build_and_push_flavor_fat.sh bullseye-fat-aarch64 bullseye/Dockerfile.fat
230+ - ./docker_build_and_push_flavor_fat.sh alpine-fat-aarch64 alpine/Dockerfile.fat
231+
232+ - name : Build fat Docker image -- amd64
233+ arch : amd64
234+ stage : build-fat
235+ script :
236+ - ./docker_build_and_push_flavor_fat.sh bookworm-fat-amd64 bookworm/Dockerfile.fat
237+ - ./docker_build_and_push_flavor_fat.sh bullseye-fat-amd64 bullseye/Dockerfile.fat
238+ - ./docker_build_and_push_flavor_fat.sh alpine-fat-amd64 alpine/Dockerfile.fat
239+
240+ - name : Create and push manifests for fat multi-arch images
241+ stage : manifest-fat
242+ script :
243+ - ./docker_manifest.sh bookworm-fat bookworm-fat-amd64 bookworm-fat-aarch64
244+ - ./docker_manifest.sh bullseye-fat bullseye-fat-amd64 bullseye-fat-aarch64
245+ - ./docker_manifest.sh alpine-fat alpine-fat-amd64 alpine-fat-aarch64
0 commit comments