diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c3aaaf8b9a980835405c2db52f18872e4b780c6..cd21e130b7fd179d9fe24ef4f5b272af7efd7c0b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,7 @@ variables: - DOCKER_TAG: $CI_COMMIT_SHA - GOSDN_IMAGE: "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}" - GOSDN_TESTING_IMAGE: "${CI_REGISTRY_IMAGE}:testing_${DOCKER_TAG}" - GOSDN_INTEGRATION_TEST_IMAGE: "${CI_REGISTRY_IMAGE}/integration-tests:${DOCKER_TAG}" + GOSDN_IMAGE: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" + GOSDN_TESTING_IMAGE: "${CI_REGISTRY_IMAGE}:testing_${CI_COMMIT_SHA}" + GOSDN_INTEGRATION_TEST_IMAGE: "${CI_REGISTRY_IMAGE}/integration-tests:${CI_COMMIT_SHA}" CEOS_IMAGE: "${CI_PCONTAINERS_REGISTRY_IMAGE}/ceos:4.28.2F" GOLANG_VERSION: "1.22" GNMI_TARGET_IMAGE: registry.code.fbi.h-da.de/danet/gnmi-target/debian:master @@ -22,6 +21,7 @@ stages: - test - analyze - test-legacy + - release - deploy - .post @@ -34,3 +34,4 @@ include: - local: "/.gitlab/ci/.renovate.yml" - local: "/.gitlab/ci/.mk-docs-deploy.yml" - local: "/.gitlab/ci/legacy/.test.yml" + - local: "/.gitlab/ci/.release-container.yml" diff --git a/.gitlab/ci/.build-container-images.yml b/.gitlab/ci/.build-container-images.yml index 04cbec4a79124bd37c54abe0d4ed231a61a142e8..7e23a663784c5cdfb64e0fe986cac0b7d52b8a51 100644 --- a/.gitlab/ci/.build-container-images.yml +++ b/.gitlab/ci/.build-container-images.yml @@ -4,8 +4,6 @@ services: - name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:latest alias: docker - variables: - DOCKER_TLS_CERTDIR: "/certs" before_script: - apk add git - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY @@ -19,8 +17,6 @@ services: - name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:latest alias: docker - variables: - DOCKER_TLS_CERTDIR: "/certs" before_script: - apk add git - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY @@ -28,36 +24,46 @@ build-controller-image: script: - - docker buildx build -t "$CI_REGISTRY_IMAGE:$DOCKER_TAG" -f "${CI_PROJECT_DIR}/controller/controller.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . - - docker push "$CI_REGISTRY_IMAGE:$DOCKER_TAG" + - docker buildx build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/controller/controller.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" + - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" <<: *build build-cli-image: script: - CLI_IMAGE_NAME="${CI_REGISTRY_IMAGE}/gosdnc" - - docker buildx build -t "$CLI_IMAGE_NAME:$DOCKER_TAG" -f "${CI_PROJECT_DIR}/cli/cli.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . - - docker push "$CLI_IMAGE_NAME:$DOCKER_TAG" + - docker buildx build -t "$CLI_IMAGE_NAME:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/cli/cli.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$CLI_IMAGE_NAME:$CI_COMMIT_SHA" + - docker tag "$CLI_IMAGE_NAME:$CI_COMMIT_SHA" "$CLI_IMAGE_NAME:$CI_COMMIT_REF_SLUG" + - docker push "$CLI_IMAGE_NAME:$CI_COMMIT_REF_SLUG" <<: *build build-venv-manager-image: script: - VENV_MANAGER_IMAGE_NAME="${CI_REGISTRY_IMAGE}/venv-manager" - - docker buildx build -t "$VENV_MANAGER_IMAGE_NAME:$DOCKER_TAG" -f "${CI_PROJECT_DIR}/applications/venv-manager/venv-manager.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . - - docker push "$VENV_MANAGER_IMAGE_NAME:$DOCKER_TAG" + - docker buildx build -t "$VENV_MANAGER_IMAGE_NAME:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/applications/venv-manager/venv-manager.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$VENV_MANAGER_IMAGE_NAME:$CI_COMMIT_SHA" + - docker tag "$VENV_MANAGER_IMAGE_NAME:$CI_COMMIT_SHA" "$VENV_MANAGER_IMAGE_NAME:$CI_COMMIT_REF_SLUG" + - docker push "$VENV_MANAGER_IMAGE_NAME:$CI_COMMIT_REF_SLUG" <<: *build build-arista-routing-engine-image: script: - ARISTA_ROUTING_ENGINE_IMAGE_NAME="${CI_REGISTRY_IMAGE}/arista-routing-engine" - - docker buildx build -t "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$DOCKER_TAG" -f "${CI_PROJECT_DIR}/applications/arista-routing-engine/arista-routing-engine.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . - - docker push "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$DOCKER_TAG" + - docker buildx build -t "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/applications/arista-routing-engine/arista-routing-engine.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$CI_COMMIT_SHA" + - docker tag "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$CI_COMMIT_SHA" "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$CI_COMMIT_REF_SLUG" + - docker push "$ARISTA_ROUTING_ENGINE_IMAGE_NAME:$CI_COMMIT_REF_SLUG" <<: *build build-plugin-registry-image: script: - PLUGIN_REGISTRY_IMAGE_NAME="${CI_REGISTRY_IMAGE}/plugin-registry" - - docker buildx build -t "$PLUGIN_REGISTRY_IMAGE_NAME:$DOCKER_TAG" -f "${CI_PROJECT_DIR}/plugin-registry/plugin-registry.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . - - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$DOCKER_TAG" + - docker buildx build -t "$PLUGIN_REGISTRY_IMAGE_NAME:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/plugin-registry/plugin-registry.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$CI_COMMIT_SHA" + - docker tag "$PLUGIN_REGISTRY_IMAGE_NAME:$CI_COMMIT_SHA" "$PLUGIN_REGISTRY_IMAGE_NAME:$CI_COMMIT_REF_SLUG" + - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$CI_COMMIT_REF_SLUG" <<: *build build-integration-test-images: @@ -67,11 +73,11 @@ build-integration-test-images: - apk add openssl make - make generate-certs # Build gosdn with ssl certificates - - docker buildx build -t "$CI_REGISTRY_IMAGE:${DOCKER_TAG}_integration-test" -f "${CI_PROJECT_DIR}/.gitlab/ci/gosdn-integration.Dockerfile" --build-arg "GOSDN_IMAGE=$CI_REGISTRY_IMAGE:${DOCKER_TAG}" . + - docker buildx build -t "$CI_REGISTRY_IMAGE:${CI_COMMIT_SHA}_integration-test" -f "${CI_PROJECT_DIR}/.gitlab/ci/gosdn-integration.Dockerfile" --build-arg "GOSDN_IMAGE=$CI_REGISTRY_IMAGE:${CI_COMMIT_SHA}" . # Update gnmi-target with ssl certificates - docker buildx build -t $GNMI_TARGET_INTEGRATION_IMAGE -f "${CI_PROJECT_DIR}/.gitlab/ci/gnmi-cert-integration.Dockerfile" --build-arg "GNMI_TARGET_IMAGE=${GNMI_TARGET_IMAGE}" . # Push images - - docker push "$CI_REGISTRY_IMAGE:${DOCKER_TAG}_integration-test" + - docker push "$CI_REGISTRY_IMAGE:${CI_COMMIT_SHA}_integration-test" - docker push $GNMI_TARGET_INTEGRATION_IMAGE artifacts: paths: diff --git a/.gitlab/ci/.release-container.yml b/.gitlab/ci/.release-container.yml new file mode 100644 index 0000000000000000000000000000000000000000..12747cbf1d73122d7dbc9bd19f963c6b95f5bfb8 --- /dev/null +++ b/.gitlab/ci/.release-container.yml @@ -0,0 +1,51 @@ +.release: &release + stage: release + image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:latest + services: + - name: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:latest + alias: docker + variables: + RELEASE_DOCKER_TAG: $CI_COMMIT_REF_SLUG + before_script: + - apk add git + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker login -u $CI_DEPENDENCY_PROXY_USER -p $CI_DEPENDENCY_PROXY_PASSWORD $CI_DEPENDENCY_PROXY_SERVER + needs: [] + only: + - tags + +release-controller-image: + script: + - CONTROLLER_IMAGE_NAME="${CI_REGISTRY_IMAGE}" + - docker buildx build -t "${CONTROLLER_IMAGE_NAME}:${RELEASE_DOCKER_TAG}" -f "${CI_PROJECT_DIR}/controller/controller.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "${CONTROLLER_IMAGE_NAME}:${RELEASE_DOCKER_TAG}" + - docker tag "${CONTROLLER_IMAGE_NAME}:${RELEASE_DOCKER_TAG}" "${CONTROLLER_IMAGE_NAME}:latest" + - docker push "${CONTROLLER_IMAGE_NAME}:latest" + <<: *release + +release-cli-image: + script: + - CLI_IMAGE_NAME="${CI_REGISTRY_IMAGE}/gosdnc" + - docker buildx build -t "$CLI_IMAGE_NAME:$RELEASE_DOCKER_TAG" -f "${CI_PROJECT_DIR}/cli/cli.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$CLI_IMAGE_NAME:$RELEASE_DOCKER_TAG" + - docker tag "$CLI_IMAGE_NAME:$RELEASE_DOCKER_TAG" "$CLI_IMAGE_NAME:latest" + - docker push "$CLI_IMAGE_NAME:latest" + <<: *release + +release-venv-manager-image: + script: + - VENV_MANAGER_IMAGE_NAME="${CI_REGISTRY_IMAGE}/venv-manager" + - docker buildx build -t "$VENV_MANAGER_IMAGE_NAME:$RELEASE_DOCKER_TAG" -f "${CI_PROJECT_DIR}/applications/venv-manager/venv-manager.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$VENV_MANAGER_IMAGE_NAME:$RELEASE_DOCKER_TAG" + - docker tag "$VENV_MANAGER_IMAGE_NAME:$RELEASE_DOCKER_TAG" "$VENV_MANAGER_IMAGE_NAME:latest" + - docker push "$VENV_MANAGER_IMAGE_NAME:latest" + <<: *release + +release-plugin-registry-image: + script: + - PLUGIN_REGISTRY_IMAGE_NAME="${CI_REGISTRY_IMAGE}/plugin-registry" + - docker buildx build -t "$PLUGIN_REGISTRY_IMAGE_NAME:$RELEASE_DOCKER_TAG" -f "${CI_PROJECT_DIR}/plugin-registry/plugin-registry.Dockerfile" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" . + - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:$RELEASE_DOCKER_TAG" + - docker tag "$PLUGIN_REGISTRY_IMAGE_NAME:$RELEASE_DOCKER_TAG" "$PLUGIN_REGISTRY_IMAGE_NAME:latest" + - docker push "$PLUGIN_REGISTRY_IMAGE_NAME:latest" + <<: *release diff --git a/.gitlab/ci/.test.yml b/.gitlab/ci/.test.yml index 20cd508b90897386d1e38cbbc9f85faba30ca929..99ea33631f607a038a048980053d81213e401721 100644 --- a/.gitlab/ci/.test.yml +++ b/.gitlab/ci/.test.yml @@ -20,7 +20,7 @@ integration-test-gosdn: alias: rabbitmq variables: HEALTHCHECK_TCP_PORT: "5672" - - name: ${CI_REGISTRY_IMAGE}/plugin-registry:${DOCKER_TAG} + - name: ${CI_REGISTRY_IMAGE}/plugin-registry:${CI_COMMIT_SHA} alias: plugin-registry - name: $GNMI_TARGET_INTEGRATION_IMAGE alias: gnmi-target_A @@ -29,7 +29,7 @@ integration-test-gosdn: alias: gnmi-target_B command: ["start", "--cert", "/etc/gnmi-target/ssl/certs/gnmi-target-selfsigned.crt", "--key", "/etc/gnmi-target/ssl/private/gnmi-target-selfsigned.key", "--ca_file", "/etc/gnmi-target/ssl/ca.crt"] # Use gosdn docker image from this branch - - name: "${CI_REGISTRY_IMAGE}:${DOCKER_TAG}_integration-test" + - name: "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}_integration-test" alias: gosdn variables: GOSDN_ADMIN_PASSWORD: TestPassword diff --git a/.gitlab/ci/scripts/docker_host_port b/.gitlab/ci/scripts/docker_host_port deleted file mode 100755 index 42ac183f4263c80e1120884b524233952b05e229..0000000000000000000000000000000000000000 --- a/.gitlab/ci/scripts/docker_host_port +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -TEMPLATE="{{ (index (index .NetworkSettings.Ports \"${1}/tcp\") 0).HostPort }}" -docker inspect -f "${TEMPLATE}" ${2} diff --git a/.gitlab/ci/scripts/generate_octet.py b/.gitlab/ci/scripts/generate_octet.py deleted file mode 100755 index a0005706c869f2e5b2c63e9c8ff3ed508d86e73e..0000000000000000000000000000000000000000 --- a/.gitlab/ci/scripts/generate_octet.py +++ /dev/null @@ -1,19 +0,0 @@ -import sys -from hashlib import sha256 - -input_data = sys.argv[1] - -# Hash input and store it as string -hashed_string = sha256(bytes(input_data, encoding='utf8')).hexdigest() - -final_string = "" - -# Iterate over hash and take out all chars that are a number -for character in hashed_string: - if character.isdigit(): - final_string += character - -final_int = int(final_string) - -# Print number mod 256 to get a number between 0 and 255 for ip adress -print(final_int % 256) diff --git a/.gitlab/ci/scripts/wait-for-it.sh b/.gitlab/ci/scripts/wait-for-it.sh deleted file mode 100755 index d990e0d364f576ee83cd699707076ca49ad36a4d..0000000000000000000000000000000000000000 --- a/.gitlab/ci/scripts/wait-for-it.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/usr/bin/env bash -# Use this script to test if a given TCP host/port are available - -WAITFORIT_cmdname=${0##*/} - -echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } - -usage() -{ - cat << USAGE >&2 -Usage: - $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args] - -h HOST | --host=HOST Host or IP under test - -p PORT | --port=PORT TCP port under test - Alternatively, you specify the host and port as host:port - -s | --strict Only execute subcommand if the test succeeds - -q | --quiet Don't output any status messages - -t TIMEOUT | --timeout=TIMEOUT - Timeout in seconds, zero for no timeout - -- COMMAND ARGS Execute command with args after the test finishes -USAGE - exit 1 -} - -wait_for() -{ - if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then - echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" - else - echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" - fi - WAITFORIT_start_ts=$(date +%s) - while : - do - if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then - nc -z $WAITFORIT_HOST $WAITFORIT_PORT - WAITFORIT_result=$? - else - (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 - WAITFORIT_result=$? - fi - if [[ $WAITFORIT_result -eq 0 ]]; then - WAITFORIT_end_ts=$(date +%s) - echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" - break - fi - sleep 1 - done - return $WAITFORIT_result -} - -wait_for_wrapper() -{ - # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 - if [[ $WAITFORIT_QUIET -eq 1 ]]; then - timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & - else - timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & - fi - WAITFORIT_PID=$! - trap "kill -INT -$WAITFORIT_PID" INT - wait $WAITFORIT_PID - WAITFORIT_RESULT=$? - if [[ $WAITFORIT_RESULT -ne 0 ]]; then - echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" - fi - return $WAITFORIT_RESULT -} - -# process arguments -while [[ $# -gt 0 ]] -do - case "$1" in - *:* ) - WAITFORIT_hostport=(${1//:/ }) - WAITFORIT_HOST=${WAITFORIT_hostport[0]} - WAITFORIT_PORT=${WAITFORIT_hostport[1]} - shift 1 - ;; - --child) - WAITFORIT_CHILD=1 - shift 1 - ;; - -q | --quiet) - WAITFORIT_QUIET=1 - shift 1 - ;; - -s | --strict) - WAITFORIT_STRICT=1 - shift 1 - ;; - -h) - WAITFORIT_HOST="$2" - if [[ $WAITFORIT_HOST == "" ]]; then break; fi - shift 2 - ;; - --host=*) - WAITFORIT_HOST="${1#*=}" - shift 1 - ;; - -p) - WAITFORIT_PORT="$2" - if [[ $WAITFORIT_PORT == "" ]]; then break; fi - shift 2 - ;; - --port=*) - WAITFORIT_PORT="${1#*=}" - shift 1 - ;; - -t) - WAITFORIT_TIMEOUT="$2" - if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi - shift 2 - ;; - --timeout=*) - WAITFORIT_TIMEOUT="${1#*=}" - shift 1 - ;; - --) - shift - WAITFORIT_CLI=("$@") - break - ;; - --help) - usage - ;; - *) - echoerr "Unknown argument: $1" - usage - ;; - esac -done - -if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then - echoerr "Error: you need to provide a host and port to test." - usage -fi - -WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15} -WAITFORIT_STRICT=${WAITFORIT_STRICT:-0} -WAITFORIT_CHILD=${WAITFORIT_CHILD:-0} -WAITFORIT_QUIET=${WAITFORIT_QUIET:-0} - -# Check to see if timeout is from busybox? -WAITFORIT_TIMEOUT_PATH=$(type -p timeout) -WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) - -WAITFORIT_BUSYTIMEFLAG="" -if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then - WAITFORIT_ISBUSY=1 - # Check if busybox timeout uses -t flag - # (recent Alpine versions don't support -t anymore) - if timeout &>/dev/stdout | grep -q -e '-t '; then - WAITFORIT_BUSYTIMEFLAG="-t" - fi -else - WAITFORIT_ISBUSY=0 -fi - -if [[ $WAITFORIT_CHILD -gt 0 ]]; then - wait_for - WAITFORIT_RESULT=$? - exit $WAITFORIT_RESULT -else - if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then - wait_for_wrapper - WAITFORIT_RESULT=$? - else - wait_for - WAITFORIT_RESULT=$? - fi -fi - -if [[ $WAITFORIT_CLI != "" ]]; then - if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then - echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess" - exit $WAITFORIT_RESULT - fi - exec "${WAITFORIT_CLI[@]}" -else - exit $WAITFORIT_RESULT -fi diff --git a/csbi/build/ci/.build-container.yml b/csbi/build/ci/.build-container.yml index fffce63f2342356baf45f445434523c33ac32244..1e229f0c16f0db8e536e9a2ab03aac872119f03d 100644 --- a/csbi/build/ci/.build-container.yml +++ b/csbi/build/ci/.build-container.yml @@ -1,6 +1,3 @@ -variables: - DOCKER_TLS_CERTDIR: "/certs" - build-docker: before_script: - echo "override global before script"