Skip to content

[Refactor] code refactor and exception handling/logging in grpc server #68

[Refactor] code refactor and exception handling/logging in grpc server

[Refactor] code refactor and exception handling/logging in grpc server #68

Workflow file for this run

name: Deploy Auth Service
'on':
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Decode .env file
run: |
echo "${{ secrets.ENCRYPTED_ENV_FILE }}" | base64 --decode > .env.gpg
gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.ENV_SECRET_PASSPHRASE }}" --output .env .env.gpg
- name: Setup AWS creds
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: '${{ secrets.AWS_REGION }}'
- name: Build Docker image
run: docker build --no-cache -t auth-service ./auth-service
- name: Push Docker image to ECR
env:
AWS_ACCOUNT_ID: '${{ secrets.AWS_ACCOUNT_ID }}'
AWS_REGION: '${{ secrets.AWS_REGION }}'
run: |
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/repo
docker tag auth-service:latest $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/repo:latest
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/repo:latest
- name: Decoding SSH KEY
run: |
echo "${{ secrets.EC2_SSH_KEY }}" > ec2_key.base64
base64 --decode ec2_key.base64 > ec2_key.pem.gpg
gpg --quiet --batch --yes --decrypt --passphrase="${{ secrets.ENV_SECRET_PASSPHRASE }}" --output ec2_key.pem ec2_key.pem.gpg
chmod 600 ec2_key.pem
- name: Update app on EC2
run: |
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ./ec2_key.pem .env ubuntu@${{ secrets.EC2_INSTANCE_IP }}:.env
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ./ec2_key.pem ubuntu@${{ secrets.EC2_INSTANCE_IP }} << 'EOF'
aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/repo
sudo docker pull ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/repo:latest
sudo docker ps -aq | sudo xargs docker rm -f 2>/dev/null || true
sudo docker run -d --name auth-service -p 80:8000 --env-file .env ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/repo:latest
sudo rm .env
EOF
rm ec2_key* .env*