CI/CD

circle-info

ci/cd file name = .gitlab-ci.yml


image: nnsp/pipeline-runner:v0.2

stages:
  - build_dev
  - deploy_dev
  - deploy_eks

before_script:
  - 'which ssh-agent || ( apk add --update openssh git -q )'
  - eval $(ssh-agent -s)
  - echo "$DEV_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -> /dev/null #add ssh key

build_dev:
  stage: build_dev
  script: 
    - ECR=ECR_URL
    - REPO=REPO_NAME
    - AWS_REGION=us-east-1
    - $(aws ecr get-login --no-include-email --region $AWS_REGION) # login to ECR
    - docker build . --tag $ECR/$REPO:dev
    - docker push $ECR/$REPO:dev

  only:
    - dev 

deploy_dev:
  stage: deploy_dev
  script:
    - ssh $USER@$DEV_SERVER -t "cd /home/ubuntu/devops/ && bash deploy.sh"

  only:
    - dev 

deploy_eks:
  stage: deploy_eks
  script:
    - aws eks update-kubeconfig --region us-east-1 --name EKS-TEST
    # - kubectl config view --minify
    # - kubectl rollout restart deployment content 
    - kubectl rollout restart deployment content -n TEST_NAMESPACE
    - kubectl get deploy

  only:
    - dev


Last updated