image: frolvlad/alpine-glibc variables: DOCKERHUB_USERNAME: deichman before_script: - echo -n "START :" && date -u +'%Y-%m-%dT%H:%M:%SZ' - apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing make docker curl bash git - curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - chmod +x /usr/local/bin/docker-compose - echo $DOCKERHUB_PASSWORD|docker login -u $DOCKERHUB_USERNAME --password-stdin - export DOCKER_BUILDKIT=1 - export COMPOSE_DOCKER_CLI_BUILD=1 - export TAG=${CI_COMMIT_TAG:-latest} stages: - docker-cleanup - test - push - deploy-test - deploy-dynamic - sanity - deploy-stage - deploy-prod - patch - patch-prod include: - "/gitlab-ci/push-jobs.yml" - "/gitlab-ci/deploy-jobs.yml" .ssh-setup: before_script: - apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing make docker curl bash git figlet - curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - chmod +x /usr/local/bin/docker-compose - 'which ssh-agent || ( apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing openssh-client git )' - eval $(ssh-agent -s) - echo "$SSH_KEY" | tr -d '\r' | ssh-add - > /dev/null - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - export APPLICATION_NAME=${APPLICATION_NAME} e2e-tests: tags: - e2e script: - cd e2e-tests - bash prepareBaselines.sh - docker-compose -p $CI_PIPELINE_IID -f docker-compose-common.yml -f docker-compose-ci.yml up --build --exit-code-from tests after_script: - cd e2e-tests - docker-compose -p $CI_PIPELINE_IID -f docker-compose-common.yml -f docker-compose-ci.yml down -v --rmi local - echo -n "END :" && date -u +'%Y-%m-%dT%H:%M:%SZ' artifacts: when: always expire_in: 1 week paths: - e2e-tests/cypress/videos/ - e2e-tests/cypress/screenshots/ stage: test rules: - if: '$CI_PIPELINE_SOURCE == "schedule"' when: always - when: manual allow_failure: true # TODO: prune volumes if necessary zork-cleanup: stage: docker-cleanup script: - df -h / - docker system df - docker image prune -a -f - docker builder prune -f --filter "until=72h" - docker system df - df -h / rules: - if: '$CI_PIPELINE_SOURCE == "schedule"' when: always - when: manual allow_failure: true