Skip to content

Commit f79f436

Browse files
authored
Update build.yml
1 parent b7f03a2 commit f79f436

1 file changed

Lines changed: 25 additions & 30 deletions

File tree

.github/workflows/build.yml

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)