Skip to content
Snippets Groups Projects

Create new integration-test setup

Merged Neil-Jocelyn Schark requested to merge 329-create-new-test-concept-and-set-up into master
Compare and
10 files
+ 212
28
Compare changes
  • Side-by-side
  • Inline
Files
10
 
variables:
 
CLAB_TEMPLATE: "${CI_PROJECT_DIR}/controller/test/containerlab/int01.clab.tmpl.yml"
 
CLAB_DIR: "/home/gitlab-runner/clab"
 
CLAB_NAME: "clab${CI_PIPELINE_IID}"
 
 
legacy-containerlab-deploy:
 
stage: test-legacy
 
tags:
 
- shell-containerlab
 
needs: ["build-controller-image", "build-controller-testing-image"]
 
script:
 
- firstOctet=$(python3 ${CI_PROJECT_DIR}/.gitlab/ci/scripts/generate_octet.py $CI_COMMIT_SHA)
 
- secondOctet=$(python3 ${CI_PROJECT_DIR}/.gitlab/ci/scripts/generate_octet.py $CI_PIPELINE_ID)
 
- export CLAB_MGMT_SUBNET="172.$firstOctet.$secondOctet.0/24"
 
- cd ${CLAB_DIR}
 
- ls -la
 
- |
 
sed -e "s|@@CEOS_CONTAINER_IMAGE@@|${CEOS_IMAGE}|g" \
 
-e "s|@@GOSDN_CONTAINER_IMAGE@@|${GOSDN_IMAGE}|g" \
 
-e "s|@@CLAB_NAME@@|${CLAB_NAME}|g" \
 
-e "s|@@CLAB_MGMT_SUBNET@@|${CLAB_MGMT_SUBNET}|g" \
 
${CLAB_TEMPLATE} > ${CLAB_NAME}.clab.yml
 
- cat ${CLAB_NAME}.clab.yml
 
- echo "${DOCKER_AUTH_CONFIG}" > ~/.docker/config.json | docker login $CI_REGISTRY
 
- echo ${GOSDN_IMAGE}
 
- docker pull ${GOSDN_IMAGE}
 
- docker pull ${CEOS_IMAGE}
 
- sudo containerlab deploy --topo ${CLAB_DIR}/${CLAB_NAME}.clab.yml --reconfigure
 
- |
 
echo -e "\
 
GOSDN_HTTP_PORT=$(${CI_PROJECT_DIR}/.gitlab/ci/scripts/docker_host_port 8080 clab-${CLAB_NAME}-gosdn)\n\
 
GOSDN_GRPC_PORT=$(${CI_PROJECT_DIR}/.gitlab/ci/scripts/docker_host_port 55055 clab-${CLAB_NAME}-gosdn)\n\
 
CEOS1_PORT=$(${CI_PROJECT_DIR}/.gitlab/ci/scripts/docker_host_port 6030 clab-${CLAB_NAME}-ceos1)" \
 
> ${CI_PROJECT_DIR}/build.env
 
- cat ${CI_PROJECT_DIR}/build.env
 
artifacts:
 
reports:
 
dotenv: ${CI_PROJECT_DIR}/build.env
 
 
 
legacy-containerlab-destroy:
 
stage: test-legacy
 
tags:
 
- shell-containerlab
 
needs:
 
[
 
"legacy-containerlab-deploy",
 
"legacy-integration-test-legacy:nucleus",
 
"legacy-integration-test-legacy:api"
 
]
 
before_script:
 
- cd ${CLAB_DIR}
 
script:
 
- sudo containerlab destroy --topo ${CLAB_DIR}/${CLAB_NAME}.clab.yml -c
 
- docker volume rm -f ${CLAB_NAME}-volume
 
- echo ${CLAB_NAME}
 
- ls -la
 
- rm ${CLAB_DIR}/${CLAB_NAME}.clab.yml || true
 
- rm ${CLAB_DIR}/.${CLAB_NAME}.clab.yml.bak || true
 
- sudo rm -r ${CLAB_DIR}/clab-${CLAB_NAME} || true
 
- ls -la
 
 
allow_failure: true
 
 
 
#containerlab:clean:
 
# stage: .post
 
# tags:
 
# - shell-containerlab
 
# before_script:
 
# - cd ${CLAB_DIR}
 
# script:
 
# - docker kill $(docker ps -q) || true
 
# - docker rm $(docker ps -a -q) || true
 
# - docker rmi $(docker images | grep 'registry.code.fbi.h-da.de/danet/gosdn ' | awk '{print $3}') || true
 
# - sudo rm -rf ${CLAB_DIR}/clab-* || true
 
# - sudo sed -i 's|.*clab.*||g' /etc/hosts
 
# allow_failure: true
 
# rules:
 
# - if: $CI_SCHEDULE_CLEAN
 
# when: always
Loading