fix(CI): Adding image upload stage
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
|
- upload
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
@@ -18,6 +19,14 @@ build-job:
|
|||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
upload-job:
|
||||||
|
stage: upload
|
||||||
|
script:
|
||||||
|
- . ./scripts/ci_functions.sh
|
||||||
|
- upload_image
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
|
||||||
deploy-job:
|
deploy-job:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
script:
|
script:
|
||||||
|
|||||||
@@ -16,6 +16,45 @@ function build_docker(){
|
|||||||
set +x
|
set +x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upload_image(){
|
||||||
|
#Global ENV VAR: AWS_DEFAULT_REGION
|
||||||
|
#Global ENV VAR: AWS_ECRWRITTER_ID
|
||||||
|
#Global ENV VAR: AWS_ECRWRITTER_SECRET
|
||||||
|
#Global ENV VAR: AWS_ECR_USER
|
||||||
|
#Global ENV VAR: AWS_ECR_REPO
|
||||||
|
#Global ENV VAR: CONTAINER_NAME
|
||||||
|
mkdir .aws
|
||||||
|
echo "[default]" > ./.aws/config
|
||||||
|
echo "region = $AWS_DEFAULT_REGION" >> ./.aws/config
|
||||||
|
echo "output = json" >> ./.aws/config
|
||||||
|
echo "[default]" > ./.aws/credentials
|
||||||
|
echo "aws_access_key_id = $AWS_ECRWRITTER_ID" >> ./.aws/credentials
|
||||||
|
echo "aws_secret_access_key = $AWS_ECRWRITTER_SECRET" >> ./.aws/credentials
|
||||||
|
DOCKER_PWD=$(docker run --rm -v ./.aws/:/root/.aws amazon/aws-cli ecr get-login-password)
|
||||||
|
rm -rf ./.aws
|
||||||
|
docker login -u $AWS_ECR_USER -p $DOCKER_PWD $AWS_ECR_REPO
|
||||||
|
set -x
|
||||||
|
docker push "$AWS_ECR_REPO/$CONTAINER_NAME":latest
|
||||||
|
set +x
|
||||||
|
}
|
||||||
|
|
||||||
|
function prepare_deployment(){
|
||||||
|
# Global Env Var: AWS_DEFAULT_REGION
|
||||||
|
# Global Env Var: AWS_ECRWRITTER_ID
|
||||||
|
# Global Env Var: AWS_ECRWRITTER_SECRET
|
||||||
|
# Global Env Var: SYSTEM_HOSTNAME
|
||||||
|
#Generate Docker Access Token
|
||||||
|
mkdir .aws
|
||||||
|
echo "[default]" > ./.aws/config
|
||||||
|
echo "region = $AWS_DEFAULT_REGION" >> ./.aws/config
|
||||||
|
echo "output = json" >> ./.aws/config
|
||||||
|
echo "[default]" > ./.aws/credentials
|
||||||
|
echo "aws_access_key_id = $AWS_ECRWRITTER_ID" >> ./.aws/credentials
|
||||||
|
echo "aws_secret_access_key = $AWS_ECRWRITTER_SECRET" >> ./.aws/credentials
|
||||||
|
export DOCKER_PWD=$(docker run --rm -v ./.aws/:/root/.aws amazon/aws-cli ecr get-login-password)
|
||||||
|
rm -rf ./.aws
|
||||||
|
}
|
||||||
|
|
||||||
function deploy_uservice(){
|
function deploy_uservice(){
|
||||||
# CONTAINER NAME
|
# CONTAINER NAME
|
||||||
# PUBLIC PORT
|
# PUBLIC PORT
|
||||||
@@ -47,6 +86,7 @@ function deploy(){
|
|||||||
# Global Env Var: PRIVATE_PORT
|
# Global Env Var: PRIVATE_PORT
|
||||||
# Global Env Var: AWS_ECR_REPO
|
# Global Env Var: AWS_ECR_REPO
|
||||||
# Global Env Var: SYSTEM_HOSTNAME
|
# Global Env Var: SYSTEM_HOSTNAME
|
||||||
|
prepare_deployment
|
||||||
set -x
|
set -x
|
||||||
ssh -i ~/.ssh/id_rsa gitlab-runner@$SYSTEM_HOSTNAME "docker login --username $AWS_ECR_USER --password $DOCKER_PWD $AWS_ECR_REPO && ./deploy_uservice.sh $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $AWS_ECR_REPO && exit"
|
ssh -i ~/.ssh/id_rsa gitlab-runner@$SYSTEM_HOSTNAME "docker login --username $AWS_ECR_USER --password $DOCKER_PWD $AWS_ECR_REPO && ./deploy_uservice.sh $CONTAINER_NAME $PUBLIC_PORT $PRIVATE_PORT $AWS_ECR_REPO && exit"
|
||||||
#deploy_local
|
#deploy_local
|
||||||
|
|||||||
Reference in New Issue
Block a user