101 lines
2.4 KiB
YAML
101 lines
2.4 KiB
YAML
variables:
|
|
PROJECT_BUILDNAME: "testskel-job"
|
|
REPO_URI: "662348923997.dkr.ecr.eu-west-1.amazonaws.com/testskel-job"
|
|
KUBE_DEPLOYMENT_NAME: "testskel-job"
|
|
KUBE_CONTAINER_NAME: "testskel-job"
|
|
|
|
|
|
stages:
|
|
- test
|
|
- build
|
|
- deploy
|
|
|
|
|
|
Run Unit:
|
|
stage: test
|
|
tags:
|
|
- docker
|
|
- x86
|
|
- aws
|
|
only:
|
|
- /^[0-9]+\.[0-9]+\.[0-9]+$/
|
|
except:
|
|
- branches
|
|
- triggers
|
|
script:
|
|
- echo "Logging into AWS"
|
|
- $(aws ecr get-login --no-include-email)
|
|
- echo "Generating Unit Test $CI_COMMIT_TAG Dockerfile"
|
|
- ./cicd/generateDockerfile.sh -t
|
|
- echo "Building Unit Test Image $PROJECT_BUILDNAME-unit:$CI_COMMIT_TAG"
|
|
- docker build -t $PROJECT_BUILDNAME-unit:$CI_COMMIT_TAG .
|
|
- echo "Running unit tests"
|
|
- docker run -e ASD_BUILDNAME="$PROJECT_BUILDNAME" $PROJECT_BUILDNAME-unit:$CI_COMMIT_TAG -c /test$PROJECT_BUILDNAME/phpunit.xml
|
|
|
|
|
|
Build image:
|
|
stage: build
|
|
tags:
|
|
- docker
|
|
- aws
|
|
- x86
|
|
only:
|
|
- /^[0-9]+\.[0-9]+\.[0-9]+$/
|
|
except:
|
|
- branches
|
|
- triggers
|
|
script:
|
|
- echo "Logging into AWS"
|
|
- $(aws ecr get-login --no-include-email)
|
|
- echo "Generating Build $CI_COMMIT_TAG Dockerfile"
|
|
- ./cicd/generateDockerfile.sh -b
|
|
- echo "Setting version file with $CI_COMMIT_TAG"
|
|
- echo "$CI_COMMIT_TAG" > version
|
|
- echo "Building image with name $REPO_URI:$CI_COMMIT_TAG"
|
|
- docker build -t $REPO_URI:$CI_COMMIT_TAG .
|
|
- echo "Pushing image"
|
|
- docker push "$REPO_URI:$CI_COMMIT_TAG" | cat
|
|
|
|
|
|
Deploy Test:
|
|
stage: deploy
|
|
tags:
|
|
- kube
|
|
- deployer
|
|
- test
|
|
only:
|
|
- /^[0-9]+\.[0-9]+\.[0-9]+$/
|
|
except:
|
|
- branches
|
|
- triggers
|
|
environment:
|
|
name: test
|
|
# url: https://$PROJECT_BUILDNAME.azzurroservice.it/test/
|
|
script:
|
|
- echo "Updating image version"
|
|
- kubectl set image deployments $KUBE_DEPLOYMENT_NAME $KUBE_CONTAINER_NAME="$REPO_URI:$CI_COMMIT_TAG"
|
|
- echo "Checking status"
|
|
- kubectl rollout status deployments $KUBE_CONTAINER_NAME
|
|
|
|
|
|
Deploy Production:
|
|
stage: deploy
|
|
tags:
|
|
- kube
|
|
- deployer
|
|
- production
|
|
only:
|
|
- /^[0-9]+\.[0-9]+\.[0-9]+$/
|
|
except:
|
|
- branches
|
|
- triggers
|
|
when: manual
|
|
environment:
|
|
name: production
|
|
# url: https://$PROJECT_BUILDNAME.azzurroservice.it/
|
|
script:
|
|
- echo "Updating image version"
|
|
- kubectl set image deployments $KUBE_DEPLOYMENT_NAME $KUBE_CONTAINER_NAME="$REPO_URI:$CI_COMMIT_TAG"
|
|
- echo "Checking status"
|
|
- kubectl rollout status deployments $KUBE_CONTAINER_NAME
|