From c56a9e6a53249928001f2341817115c4afa7c338 Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 3 Feb 2023 17:45:51 +1100 Subject: [PATCH] Split out .gitlab-ci to separate files, added arm64 --- .gitlab-ci.yml | 106 +++++------------------------------- .gitlab-docker-arm64.yml | 30 ++++++++++ .gitlab-docker-armv7l.yml | 30 ++++++++++ .gitlab-docker-manifest.yml | 21 +++++++ .gitlab-docker-x86_64.yml | 30 ++++++++++ 5 files changed, 124 insertions(+), 93 deletions(-) create mode 100644 .gitlab-docker-arm64.yml create mode 100644 .gitlab-docker-armv7l.yml create mode 100644 .gitlab-docker-manifest.yml create mode 100644 .gitlab-docker-x86_64.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3f2ac4f..f7398d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,116 +1,36 @@ -image: docker:latest - stages: - build - build-manifest - build-test - build-manifest-test -cache: - key: ${CI_COMMIT_REF_SLUG} - paths: - - docker/ - variables: BRANCH: alpine VERSION: 8.1-fpm-${BRANCH} DOCKER_HOST: tcp://docker:2375 VERSIONARCH: ${VERSION}-${ARCH} +cache: + key: ${CI_COMMIT_REF_SLUG} + paths: + - docker/ + +image: docker:latest services: - docker:dind before_script: +- if [ ! -d docker ]; then mkdir docker; fi - sed -ie s'/https/http/' /etc/apk/repositories - HTTP_PROXY=http://proxy.dege.lan:3128 apk add git curl - docker info - docker version -- env|sort +# env|sort # docker login -u "$CI_DEPENDENCY_PROXY_USER" -p "$CI_DEPENDENCY_PROXY_PASSWORD" "$CI_SERVER_HOST" - echo "$CI_JOB_TOKEN" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin -x86_64:build: - variables: - ARCH: x86_64 - stage: build - script: - - if [ -f init ]; then chmod 500 init; fi - - ([ -z "$REFRESH" -a -f docker/${CI_COMMIT_REF_SLUG} ]) && docker load < docker/${CI_COMMIT_REF_SLUG} || true - - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --cache-from ${CI_REGISTRY_IMAGE}:${VERSIONARCH} -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH} . - - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH} - - docker save ${CI_REGISTRY_IMAGE}:${VERSIONARCH} > docker/${CI_COMMIT_REF_SLUG} - - # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=image ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline - # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=server ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline - tags: - - docker - - x86_64 - only: - - alpine - -x86_64:build-test: - variables: - ARCH: x86_64 - stage: build-test - script: - - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --file Dockerfile.phptest -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test . - - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test - tags: - - docker - - x86_64 - only: - - alpine - -armv7l:build: - variables: - ARCH: armv7l - stage: build - script: - - if [ -f init ]; then chmod 500 init; fi - - ([ -z "$REFRESH" -a -f docker/${CI_COMMIT_REF_SLUG} ]) && docker load < docker/${CI_COMMIT_REF_SLUG} || true - - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --cache-from ${CI_REGISTRY_IMAGE}:${VERSIONARCH} -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH} . - - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH} - - docker save ${CI_REGISTRY_IMAGE}:${VERSIONARCH} > docker/${CI_COMMIT_REF_SLUG} - - # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=image ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline - # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=server ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline - tags: - - docker - - armv7l - only: - - alpine - -armv7l:build-test: - variables: - ARCH: armv7l - stage: build-test - script: - - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --file Dockerfile.phptest -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test . - - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test - tags: - - docker - - armv7l - only: - - alpine - -x86_64:build-manifest: - stage: build-manifest - script: - - docker manifest create ${CI_REGISTRY_IMAGE}:${VERSION} ${CI_REGISTRY_IMAGE}:${VERSION}-armv7l ${CI_REGISTRY_IMAGE}:${VERSION}-x86_64 - - docker manifest push --purge ${CI_REGISTRY_IMAGE}:${VERSION} - tags: - - docker - - x86_64 - only: - - alpine - -x86_64:build-manifest-test: - stage: build-manifest-test - script: - - docker manifest create ${CI_REGISTRY_IMAGE}:${VERSION}-test ${CI_REGISTRY_IMAGE}:${VERSION}-armv7l-test ${CI_REGISTRY_IMAGE}:${VERSION}-x86_64-test - - docker manifest push --purge ${CI_REGISTRY_IMAGE}:${VERSION}-test - tags: - - docker - - x86_64 - only: - - alpine +include: +- .gitlab-docker-x86_64.yml +- .gitlab-docker-armv7l.yml +- .gitlab-docker-arm64.yml +- .gitlab-docker-manifest.yml diff --git a/.gitlab-docker-arm64.yml b/.gitlab-docker-arm64.yml new file mode 100644 index 0000000..daea72c --- /dev/null +++ b/.gitlab-docker-arm64.yml @@ -0,0 +1,30 @@ +arm64:build: + variables: + ARCH: arm64 + stage: build + script: + - if [ -f init ]; then chmod 500 init; fi + - ([ -z "$REFRESH" -a -f docker/${CI_COMMIT_REF_SLUG} ]) && docker load < docker/${CI_COMMIT_REF_SLUG} || true + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --cache-from ${CI_REGISTRY_IMAGE}:${VERSIONARCH} -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH} . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH} + - docker save ${CI_REGISTRY_IMAGE}:${VERSIONARCH} > docker/${CI_COMMIT_REF_SLUG} + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=image ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=server ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + tags: + - docker + - arm64 + only: + - alpine + +arm64:build-test: + variables: + ARCH: arm64 + stage: build-test + script: + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --file Dockerfile.phptest -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test + tags: + - docker + - arm64 + only: + - alpine diff --git a/.gitlab-docker-armv7l.yml b/.gitlab-docker-armv7l.yml new file mode 100644 index 0000000..9b6a0e9 --- /dev/null +++ b/.gitlab-docker-armv7l.yml @@ -0,0 +1,30 @@ +armv7l:build: + variables: + ARCH: armv7l + stage: build + script: + - if [ -f init ]; then chmod 500 init; fi + - ([ -z "$REFRESH" -a -f docker/${CI_COMMIT_REF_SLUG} ]) && docker load < docker/${CI_COMMIT_REF_SLUG} || true + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --cache-from ${CI_REGISTRY_IMAGE}:${VERSIONARCH} -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH} . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH} + - docker save ${CI_REGISTRY_IMAGE}:${VERSIONARCH} > docker/${CI_COMMIT_REF_SLUG} + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=image ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=server ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + tags: + - docker + - armv7l + only: + - alpine + +armv7l:build-test: + variables: + ARCH: armv7l + stage: build-test + script: + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --file Dockerfile.phptest -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test + tags: + - docker + - armv7l + only: + - alpine diff --git a/.gitlab-docker-manifest.yml b/.gitlab-docker-manifest.yml new file mode 100644 index 0000000..95dbdda --- /dev/null +++ b/.gitlab-docker-manifest.yml @@ -0,0 +1,21 @@ +x86_64:build-manifest: + stage: build-manifest + script: + - docker manifest create ${CI_REGISTRY_IMAGE}:${VERSION} ${CI_REGISTRY_IMAGE}:${VERSION}-armv7l ${CI_REGISTRY_IMAGE}:${VERSION}-x86_64 ${CI_REGISTRY_IMAGE}:${VERSION}-arm64 + - docker manifest push --purge ${CI_REGISTRY_IMAGE}:${VERSION} + tags: + - docker + - x86_64 + only: + - alpine + +x86_64:build-manifest-test: + stage: build-manifest-test + script: + - docker manifest create ${CI_REGISTRY_IMAGE}:${VERSION}-test ${CI_REGISTRY_IMAGE}:${VERSION}-armv7l-test ${CI_REGISTRY_IMAGE}:${VERSION}-x86_64-test ${CI_REGISTRY_IMAGE}:${VERSION}-arm64-test + - docker manifest push --purge ${CI_REGISTRY_IMAGE}:${VERSION}-test + tags: + - docker + - x86_64 + only: + - alpine diff --git a/.gitlab-docker-x86_64.yml b/.gitlab-docker-x86_64.yml new file mode 100644 index 0000000..840e3eb --- /dev/null +++ b/.gitlab-docker-x86_64.yml @@ -0,0 +1,30 @@ +x86_64:build: + variables: + ARCH: x86_64 + stage: build + script: + - if [ -f init ]; then chmod 500 init; fi + - ([ -z "$REFRESH" -a -f docker/${CI_COMMIT_REF_SLUG} ]) && docker load < docker/${CI_COMMIT_REF_SLUG} || true + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --cache-from ${CI_REGISTRY_IMAGE}:${VERSIONARCH} -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH} . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH} + - docker save ${CI_REGISTRY_IMAGE}:${VERSIONARCH} > docker/${CI_COMMIT_REF_SLUG} + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=image ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + # apk add curl && curl -LX POST --post301 -F token=${TRIGGER_TOKEN} -F ref=server ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/trigger/pipeline + tags: + - docker + - x86_64 + only: + - alpine + +x86_64:build-test: + variables: + ARCH: x86_64 + stage: build-test + script: + - docker build --build-arg HTTP_PROXY=http://proxy.dege.lan:3128 --file Dockerfile.phptest -t ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test . + - docker push ${CI_REGISTRY_IMAGE}:${VERSIONARCH}-test + tags: + - docker + - x86_64 + only: + - alpine