Issue :-
Whenever the automation scripts runs for more hours in CI/CD (example: more then 10 hrs) the reports are not getting generated from the GitLab.
Whereas same works fine when test runs for just couple of hours.
.gitlab-ci.yml
variables:
BRANCH: prime.stabilization
TEST_SUITE_NAME: MMR
REGION: us-west-2
DB_PREFIX: mmr-
RDS_SECRET_SQL_SERVER: arn:aws:secretsmanager:us-east-2:039721755773:secret:SQLDBSecret4ADF657C-JJPDzxFqWWgs-b9RFug
S3_DB_BACKUPS: scmvpc-v2-rdsgoldimages93f77924-7z2dtg1tg9hl
IL_USER: new.info9f
IL_PASSWORD: ids123
ZELENIUM_URL: zalmmr.devcloud2.idsgrp.com
ENV_NAME: mmrtest
BUILD_NUMBER: latest
stages:
- restore_db
- deploy_env
- test
- cleanup
restore_db:
stage: restore_db
image: srahouski/dockerawscli
tags:
- scmvpc2
services: - docker:18.09.7-dind
variables:
GOLD_IMAGE: il-util-sqlgold
DOCKER_HOST: tcp://localhost:2375
script: - SCHEMA=(echo MMR_{TEST_SUITE_NAME}_${BRANCH##*.} | tr ‘[:lower:]’ ‘[:upper:]’)
- echo Restoring test database $SCHEMA from backup [$DB_PREFIX]
- eval $(/root/.local/bin/aws ecr get-login --region $REGION --no-include-email | sed ‘s|https://||’)
- ECR_REPO=$(aws --region $REGION ecr describe-repositories --query “repositories[?repositoryName==’$GOLD_IMAGE’].repositoryUri” --output text)
- docker pull $ECR_REPO
- docker run --network=host --rm ECR_REPO:latest {RDS_SECRET_SQL_SERVER} {SCHEMA} {DB_PREFIX} ${S3_DB_BACKUPS} DROP
- echo “SUCCESS” > .job_status
only:- master
deploy_env:
stage: deploy_env
image: srahouski/dockerawscli
tags:
- scmvpc2
script: - echo Deploying environment
- SCHEMA=(echo MMR_{TEST_SUITE_NAME}_${BRANCH##*.} | tr ‘[:lower:]’ ‘[:upper:]’)
- |
POST_DATA="{
“branch”: “{BRANCH}\", \ \"buildNumber\": \"{BUILD_NUMBER}”,
“dbSchema”: “{SCHEMA}\", \ \"dbBackup\": \"{DB_PREFIX}”,
“selectDbServer”: “{RDS_SECRET_SQL_SERVER}\", \ \"environmentName\": \"{ENV_NAME}”,
“owner”: “GitLab-${CI_PROJECT_NAME}” }" - wget -q -O- http://portal.devcloud.idsgrp.com/deploy --post-data “$POST_DATA” --header=‘Content-Type:application/json’
- |
ENV_URL=“http://{ENV_NAME}.devcloud.idsgrp.com" echo "Waiting for the service to start {ENV_URL}”
attempt_counter=0
max_attempts=80
while [ “(wget -q -O- --no-cache {ENV_URL}/status?appServer=il)” != “OK” ]; do
if [ $attempt_counter -eq max_attempts ];then echo "Max attempts reached" exit 1 fi printf '.' attempt_counter=(($attempt_counter+1))
sleep 10
done - echo “SUCCESS” > .job_status
only:- master
test:
tags:
- scmvpc2
cache:
paths:- .m2/repository
artifacts:
when: always
name: cucumber-reports
expire_in: 6 day
paths: - target/cucumber-html-reports/**
- mmr-job.log
variables:
MAVEN_OPTS: “-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository”
stage: test
image: maven:3-jdk-11
script:
- .m2/repository
- sh run.sh http://{ENV_NAME}.devcloud.idsgrp.com {IL_USER} {IL_PASSWORD} {ZELENIUM_URL} | tee -a mmr-job.log
- echo “CLEANUP” > .job_status
only:- master
before_script:
- echo “FAIL” > .job_status
cleanup:
stage: cleanup
image: srahouski/dockerawscli
tags:
- scmvpc2
services: - docker:18.09.7-dind
variables:
GOLD_IMAGE: il-util-dropdb
DOCKER_HOST: tcp://localhost:2375
script: - echo “Shutting down environment ${ENV_NAME}”
- wget -q -O- http://portal.devcloud.idsgrp.com/delete --post-data env=${ENV_NAME}
- SCHEMA=(echo MMR_{TEST_SUITE_NAME}_${BRANCH##*.} | tr ‘[:lower:]’ ‘[:upper:]’)
- echo “Droping test database $SCHEMA”
- eval $(/root/.local/bin/aws ecr get-login --region $REGION --no-include-email | sed ‘s|https://||’)
- ECR_REPO=$(aws --region $REGION ecr describe-repositories --query “repositories[?repositoryName==’$GOLD_IMAGE’].repositoryUri” --output text)
- docker pull $ECR_REPO
- docker run --network=host --rm ECR_REPO:latest {RDS_SECRET_SQL_SERVER} ${SCHEMA} DROP
- echo “SUCCESS” > .job_status
when: always
only:- master