Merge pull request #40 from beckn/feat_add_deployment_script #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker Build, Push and Deploy | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build-push-deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up environment variables | |
run: | | |
echo "OPENAI_AI_KEY=${{secrets.OPENAI_AI_KEY}}" >> .env | |
echo "OPENAI_MODEL_ID=${{secrets.OPENAI_MODEL_ID}}" >> .env | |
echo "OPEN_AI_EMBEDDINGS_MODEL=${{secrets.OPEN_AI_EMBEDDINGS_MODEL}}" >> .env | |
echo "PORT=${{secrets.PORT}}" >> .env | |
echo "SERVER_PORT=${{secrets.SERVER_PORT}}" >> .env | |
echo "TWILIO_ACCOUNT_SID=${{secrets.TWILIO_ACCOUNT_SID}}" >> .env | |
echo "TWILIO_AUTH_TOKEN=${{secrets.TWILIO_AUTH_TOKEN}}" >> .env | |
echo "TWILIO_NUMBER=${{secrets.TWILIO_NUMBER}}" >> .env | |
echo "TEST_RECEPIENT_NUMBER=${{secrets.TEST_RECEPIENT_NUMBER}}" >> .env | |
- name: Create SSH key file | |
run: echo -e "${{ secrets.EC2_SSH_KEY }}" > ~/ec2_key | |
env: | |
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }} | |
- name: Set permissions for SSH key file | |
run: chmod 600 ~/ec2_key | |
- name: Login to Docker Hub | |
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USER }}" --password-stdin | |
env: | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USER }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and push Docker images | |
run: | | |
docker-compose build | |
docker-compose push | |
- name: Copy environment file | |
run: scp -i ~/ec2_key -o StrictHostKeyChecking=no ./.env ec2-user@${{ secrets.EC2_IP }}:~/beckn-action-bot/.env | |
- name: Copy docker-compose.yml to the server | |
run: scp -i ~/ec2_key -o StrictHostKeyChecking=no ./docker-compose.yml ec2-user@${{ secrets.EC2_IP }}:~/beckn-action-bot/docker-compose.yml | |
- name: SSH into EC2 instance and deploy | |
run: | | |
ssh -i ~/ec2_key ec2-user@${{ secrets.EC2_IP }} ' | |
echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USER }}" --password-stdin && | |
cd ~/beckn-action-bot/ && | |
docker-compose pull && | |
docker-compose up -d' | |
env: | |
EC2_SSH_KEY: ${{ secrets.EC2_SSH_KEY }} | |
DOCKER_USERNAME: ${{ secrets.DOCKERHUB_USER }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} |