@@ -23,59 +23,54 @@ jobs:
2323 python -m pip install --upgrade pip
2424 pip install -r requirements.txt
2525
26- deploy-to-eks :
26+ deploy_to_production :
2727 runs-on : ubuntu-latest
2828 needs : build-and-test
2929
3030 steps :
3131 - name : Checkout code
3232 uses : actions/checkout@v2
3333
34- - name : Set AWS Credentials
34+ - name : Configure AWS credentials
3535 run : |
3636 aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }}
3737 aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }}
38- aws configure set region eu-north-1
38+ aws configure set region ${{ vars.AWS_REGION }}
3939
40- - name : Install tools
40+ - name : Install AWS CLI & kubectl
4141 run : |
4242 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
43- chmod +x kubectl
44- sudo mv kubectl /usr/local/bin/
45- pip install awscli --upgrade
43+ chmod +x ./kubectl
44+ sudo mv ./kubectl /usr/local/bin/kubectl
45+ pip install --upgrade awscli
46+ aws --version
4647
47- - name : Log in to ECR
48+ - name : Log in to AWS ECR
4849 run : |
49- aws ecr get-login-password --region eu-north-1 | \
50- docker login --username AWS --password-stdin ${{ secrets.IMAGE_REGISTRY }}
50+ aws ecr get-login-password --region ${{ vars.AWS_REGION }} | docker login --username AWS --password-stdin ${{ vars.IMAGE_REGISTRY }}
5151
52- - name : Build and tag Docker image
52+ - name : Update kubeconfig for EKS
5353 run : |
54- LATEST_SHA=$(git rev-parse --short HEAD)
55- echo "LATEST_SHA=$LATEST_SHA" >> $GITHUB_ENV
56-
57- docker build -t ${{ secrets.IMAGE_REGISTRY }}:$LATEST_SHA .
58- docker tag ${{ secrets.IMAGE_REGISTRY }}:$LATEST_SHA ${{ secrets.IMAGE_REGISTRY }}:latest
54+ aws eks update-kubeconfig --name eks-code2cloud-test --region ${{ vars.AWS_REGION }}
5955
60- - name : Push Docker image to ECR
56+ - name : Build Docker image
6157 run : |
62- docker push ${{ secrets.IMAGE_REGISTRY }}:$LATEST_SHA
63- docker push ${{ secrets.IMAGE_REGISTRY }}:latest
58+ LATEST_SHA=$(git rev-parse HEAD)
59+ echo "LATEST_SHA=$LATEST_SHA" >> $GITHUB_ENV
60+ docker build -t ${{ vars.IMAGE_REGISTRY }}:$LATEST_SHA .
61+ docker tag ${{ vars.IMAGE_REGISTRY }}:$LATEST_SHA ${{ vars.IMAGE_REGISTRY }}:latest
6462
65- - name : Update kubeconfig
63+ - name : Push Docker image to AWS ECR
6664 run : |
67- aws eks update-kubeconfig --name eks-code2cloud-test --region eu-north-1
65+ docker push ${{ vars.IMAGE_REGISTRY }}:$LATEST_SHA
66+ docker push ${{ vars.IMAGE_REGISTRY }}:latest
6867
6968 - name : Deploy to EKS
7069 run : |
71- DEPLOYMENT_EXISTS=$(kubectl get deployment ${{ secrets.REPOSITORY }} --namespace=default --ignore-not-found)
72-
73- if [[ -z "$DEPLOYMENT_EXISTS" ]]; then
74- echo "Creating new deployment"
75- kubectl create deployment ${{ secrets.REPOSITORY }} \
76- --image=${{ secrets.IMAGE_REGISTRY }}:$LATEST_SHA --namespace=default
70+ if ! kubectl get deployment ${{ vars.DEPLOYMENT_NAME }} -n default &> /dev/null; then
71+ echo "Deployment does not exist. Creating..."
72+ kubectl create deployment ${{ vars.DEPLOYMENT_NAME }} --image=${{ vars.IMAGE_REGISTRY }}:$LATEST_SHA -n default
7773 else
78- echo "Updating existing deployment"
79- kubectl set image deployment/${{ secrets.REPOSITORY }} \
80- ${{ secrets.REPOSITORY }}=${{ secrets.IMAGE_REGISTRY }}:$LATEST_SHA --namespace=default
74+ echo "Deployment exists. Updating..."
75+ kubectl set image deployment/${{ vars.DEPLOYMENT_NAME }} ${{ vars.DEPLOYMENT_NAME }}=${{ vars.IMAGE_REGISTRY }}:$LATEST_SHA -n default
8176 fi
0 commit comments