Skip to content

[Implement][EF-172-178][Task,Order]Delivery staff view shipping order… #4

[Implement][EF-172-178][Task,Order]Delivery staff view shipping order…

[Implement][EF-172-178][Task,Order]Delivery staff view shipping order… #4

Workflow file for this run

name: NestJS CI/CD on Kubernetes
on:
push:
branches: [ "develop" ]
jobs:
build:
name: CI/CD on EKS
runs-on: ubuntu-latest
environment: develop
env:
ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}
- name: Set short git commit SHA
id: commit
uses: prompt/actions-commit-hash@v2
- name: Checkout
uses: actions/checkout@v2
- name: Make .env file
uses: SpicyPizza/[email protected]
with:
envkey_NODE_ENV: ${{ vars.NODE_ENV }}
envkey_PORT: ${{ vars.PORT }}
envkey_MONGODB_CONNECTION_STRING: ${{ secrets.MONGODB_CONNECTION_STRING }}
envkey_CORS_VALID_ORIGINS: ${{ vars.CORS_VALID_ORIGINS }}
envkey_JWT_ACCESS_SECRET: ${{ vars.JWT_ACCESS_SECRET }}
envkey_JWT_ACCESS_EXPIRATION: ${{ vars.JWT_ACCESS_EXPIRATION }}
envkey_JWT_REFRESH_SECRET: ${{ vars.JWT_REFRESH_SECRET }}
envkey_JWT_REFRESH_EXPIRATION: ${{ vars.JWT_REFRESH_EXPIRATION }}
envkey_SMTP_USERNAME: ${{ secrets.SMTP_USERNAME }}
envkey_SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
envkey_SMTP_HOST: ${{ vars.SMTP_HOST }}
envkey_SMTP_PORT: ${{ vars.SMTP_PORT }}
envkey_SMTP_FROM_EMAIL: ${{ vars.SMTP_FROM_EMAIL }}
envkey_SMTP_FROM_NAME: ${{ vars.SMTP_FROM_NAME }}
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ vars.AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
- name: Docker cache layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-single-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-single-buildx
- name: Build & Push Image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_TAG: ${{ steps.commit.outputs.short }}
run: |
docker buildx create --use
docker buildx build \
--cache-from=type=local,src=/tmp/.buildx-cache \
--cache-to=type=local,dest=/tmp/.buildx-cache-new \
--tag ${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }} \
--push \
.
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Update kube config
run: aws eks update-kubeconfig --name ${{ vars.EKS_CLUSTER_NAME }} --region ${{ vars.AWS_REGION }}
- name: Deploy to EKS
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_TAG: ${{ steps.commit.outputs.short }}
run: |
sed -i.bak "s|DOCKER_IMAGE|${{ env.ECR_REGISTRY }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}|g" k8s/deployment.yaml && \
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/ingress.yaml