stages: - dependencies - build - package before_script: - export BASE_URL=${BASE_URL:-$(echo $CI_PROJECT_URL | cut -d'/' -f1-3)} - export CI_COMMIT_SHA_SHORT=$(echo ${CI_COMMIT_SHA} | cut -c -8) - > if [ -z "$CROSS_CLOUD_YML" ] && [ -z "$DASHBOARD_API_HOST_PORT" ]; then export CROSS_CLOUD_YML="https://raw.githubusercontent.com/CrossCloudCI/cncf-configuration/master/cross-cloud.yml" export DASHBOARD_API_HOST_PORT="devapi.cncf.ci" fi - source /opt/local/etc/rvmrc ; source /opt/local/etc/profile.d/rvm.sh ; rvm use ruby-2.6.3 ; cp -a /opt/local/dashboard /dashboard ; pushd /dashboard ; source /opt/local/.env ; ./bin/update_dashboard ; popd baseimage-arm: tags: - arm image: crosscloudci/debian-docker:arm64 stage: dependencies only: variables: - $ARCH == "arm64" script: - git clone https://github.com/envoyproxy/envoy-build-tools.git - cd envoy-build-tools/build_container - sed -i "1s|.*|FROM crosscloudci/ubuntu-bazel-arm64:xenial|" ./Dockerfile-ubuntu - sed -i "/arch=amd64/{n;n;s/.*/ \n\n\n\n/}" ./build_container_ubuntu.sh - sed -i "/arch=amd64/{n;n;s/.*/ 'aarch64' )/}" ./build_container_ubuntu.sh - sed -i '/arch=amd64/{n;n;n;s/.*/ add-apt-repository "deb [arch=arm64] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable"/}' ./build_container_ubuntu.sh - sed -i '/arch=amd64/{n;n;n;n;s/.*/ ;;/}' ./build_container_ubuntu.sh - sed -i '/arch=amd64/{n;n;n;n;n;s/.*/esac/}' ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;s/.*/ \n\n\n\n /}" ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;s/.*/ 'aarch64' )/}" ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;n;s/.*/ LLVM_DISTRO=aarch64-linux-gnu/}" ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;n;n;s/.*/ LLVM_SHA256SUM=f8f3e6bdd640079a140a7ada4eb6f5f05aeae125cf54b94d44f733b0e8691dc2/}" ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;n;n;n;s/.*/ ;;/}" ./build_container_ubuntu.sh - sed -i "/LLVM_DISTRO=x86_64-linux-gnu-ubuntu-16.04/{n;n;n;n;n;n;n;s/.*/esac/}" ./build_container_ubuntu.sh - CONTAINER_TAG="$CI_COMMIT_REF_SLUG.arm64" IMAGE_NAME="$CI_REGISTRY_IMAGE/envoy-build-ubuntu" ./docker_build.sh - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - docker push "$CI_REGISTRY_IMAGE/envoy-build-ubuntu:$CI_COMMIT_REF_SLUG.arm64" compile-arm: tags: - arm image: "crosscloudci/debian-docker:arm64" stage: build only: variables: - $ARCH == "arm64" script: - mkdir -p /envoy/envoy-"$CI_PIPELINE_ID" - cp -a $(pwd) /envoy/envoy-"$CI_PIPELINE_ID" - pushd /envoy/envoy-"$CI_PIPELINE_ID"/envoy - IMAGE_NAME="$CI_REGISTRY_IMAGE/envoy-build-ubuntu" IMAGE_ID="$CI_COMMIT_REF_SLUG.arm64" ./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.release.server_only' - popd - cp -a /envoy/envoy-"$CI_PIPELINE_ID"/envoy/build_release/ . - cp -a /envoy/envoy-"$CI_PIPELINE_ID"/envoy/build_release_stripped/ . artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" untracked: true expire_in: 5 weeks paths: - ./build_release/envoy - ./build_release_stripped/envoy compile: image: "crosscloudci/debian-docker:latest" stage: build only: variables: - $ARCH == "amd64" script: - mkdir -p /envoy/envoy-"$CI_PIPELINE_ID" - cp -a $(pwd) /envoy/envoy-"$CI_PIPELINE_ID" - pushd /envoy/envoy-"$CI_PIPELINE_ID"/envoy - ./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.release.server_only' - popd - cp -a /envoy/envoy-"$CI_PIPELINE_ID"/envoy/linux/ . # - cp -a /envoy/envoy-"$CI_PIPELINE_ID"/envoy/linux/$ARCH/build_release/ . # - cp -a /envoy/envoy-"$CI_PIPELINE_ID"/envoy/linux/$ARCH/build_release_stripped/ . artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" untracked: true expire_in: 5 weeks paths: - ./linux # - ./build_release/envoy # - ./build_release_stripped/envoy container-arm: tags: - arm image: crosscloudci/debian-docker:arm64 stage: package only: variables: - $ARCH == "arm64" script: - IMAGE_TAG=${CI_COMMIT_REF_NAME}.${CI_COMMIT_SHA_SHORT}.${CI_JOB_ID}.arm64 - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - sed -i "1s|.*|FROM crosscloudci/alpine-glibc:arm64|" ./ci/Dockerfile-envoy-alpine - sed -i "1s|.*|FROM crosscloudci/alpine-glibc:arm64|" ./ci/Dockerfile-envoy-alpine-debug - sed -i "1s|.*|FROM arm64v8/ubuntu:19.04|" ./ci/Dockerfile-envoy-image - docker build --pull -f ci/Dockerfile-envoy -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" . - docker build --pull -f ci/Dockerfile-envoy-alpine -t "$CI_REGISTRY_IMAGE/alpine:$IMAGE_TAG" . - docker build --pull -f ci/Dockerfile-envoy-alpine-debug -t "$CI_REGISTRY_IMAGE/alpine-debug:$IMAGE_TAG" . - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - echo export IMAGE_ARGS=\"--set image.repository=$CI_REGISTRY_IMAGE\" | tee release.env - echo export TAG_ARGS=\"--set image.tag=$IMAGE_TAG\" | tee -a release.env - cat release.env dependencies: - compile-arm artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" expire_in: 5 weeks paths: - release.env container: image: crosscloudci/debian-docker:latest stage: package only: variables: - $ARCH == "amd64" script: - IMAGE_TAG=${CI_COMMIT_REF_NAME}.${CI_COMMIT_SHA_SHORT}.${CI_JOB_ID}.amd64 - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY - > if [ -f "ci/Dockerfile-envoy" ]; then sed -i 's/^.*TARGETPLATFORM$/ARG TARGETPLATFORM=linux\/amd64/g' ./ci/Dockerfile-envoy docker build --pull -f ci/Dockerfile-envoy -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" . else docker build --pull -f ci/Dockerfile-envoy-image -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" . fi #- docker build --pull -f ci/Dockerfile-envoy-alpine -t "$CI_REGISTRY_IMAGE/alpine:$IMAGE_TAG" . - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - echo export IMAGE_ARGS=\"--set image.repository=$CI_REGISTRY_IMAGE\" | tee release.env - echo export TAG_ARGS=\"--set image.tag=$IMAGE_TAG\" | tee -a release.env - cat release.env dependencies: - compile artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" expire_in: 5 weeks paths: - release.env