Frontend/.gitlab-ci.yml

75 lines
2.5 KiB
YAML
Raw Normal View History

2021-02-12 10:58:44 -05:00
variables:
CI_REGISTRY_IMAGE_NG: "$CI_REGISTRY_IMAGE:latest-ng"
CI_REGISTRY_IMAGE_FRONTEND: "$CI_REGISTRY_IMAGE:latest"
2021-02-12 10:58:44 -05:00
before_script:
- docker info
- docker login -u $CI_USERNAME -p $CI_ACCESS_TOKEN $CI_REGISTRY
stages:
- build
- package
- deploy
build:
stage: build
2021-02-12 22:28:34 -05:00
only:
refs:
- master
2021-02-12 10:58:44 -05:00
script:
- docker pull $CI_REGISTRY_IMAGE_NG || true
- docker build --cache-from $CI_REGISTRY_IMAGE_NG -f ng.Dockerfile -t $CI_REGISTRY_IMAGE_NG .
- docker push $CI_REGISTRY_IMAGE_NG
package:
stage: package
needs: ['build']
only:
refs:
- master
2021-02-12 10:58:44 -05:00
variables:
PACKAGE_CONTAINER_NAME: "cre_frontend_package"
ARTIFACT_NAME: "ColorRecipesExplorer-frontend-$CI_PIPELINE_IID"
script:
- apk update
- apk add --no-cache zip
- mkdir dist
- docker run --name $PACKAGE_CONTAINER_NAME $CI_REGISTRY_IMAGE_NG ng build --configuration=$ANGULAR_CONFIGURATION --output-hashing=none --stats-json --source-map=false
- docker cp $PACKAGE_CONTAINER_NAME:/usr/src/cre/dist/color-recipes-explorer-frontend/ dist/
- zip -r $ARTIFACT_NAME.zip dist/
- docker build -t $CI_REGISTRY_IMAGE_FRONTEND --build-arg ARTIFACT_NAME=$ARTIFACT_NAME .
- docker push $CI_REGISTRY_IMAGE_FRONTEND
2021-02-12 10:58:44 -05:00
after_script:
- docker stop $PACKAGE_CONTAINER_NAME || true
- docker rm $PACKAGE_CONTAINER_NAME || true
artifacts:
paths:
- $ARTIFACT_NAME.zip
expire_in: 1 week
deploy:
stage: deploy
image: alpine:latest
needs: ['package']
only:
refs:
- master
2021-02-12 10:58:44 -05:00
variables:
DEPLOYED_CONTAINER_NAME: "cre_frontend"
before_script:
- apk update
- apk add --no-cache openssh-client
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- chmod 700 ~/.ssh/id_rsa
- eval $(ssh-agent -s)
- ssh-add ~/.ssh/id_rsa
- ssh-keyscan -p $DEPLOYMENT_SERVER_SSH_PORT -H $DEPLOYMENT_SERVER >> ~/.ssh/known_hosts
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
script:
- ssh -p $DEPLOYMENT_SERVER_SSH_PORT $DEPLOYMENT_SERVER_USERNAME@$DEPLOYMENT_SERVER "docker stop $DEPLOYED_CONTAINER_NAME || true && docker rm $DEPLOYED_CONTAINER_NAME || true"
- ssh -p $DEPLOYMENT_SERVER_SSH_PORT $DEPLOYMENT_SERVER_USERNAME@$DEPLOYMENT_SERVER "docker login -u $CI_USERNAME -p $CI_ACCESS_TOKEN $CI_REGISTRY && docker pull $CI_REGISTRY_IMAGE_FRONTEND"
- ssh -p $DEPLOYMENT_SERVER_SSH_PORT $DEPLOYMENT_SERVER_USERNAME@$DEPLOYMENT_SERVER "docker run -d -p $PORT:80 --name=$DEPLOYED_CONTAINER_NAME $CI_REGISTRY_IMAGE_FRONTEND"
2021-02-12 10:58:44 -05:00