Skip to content

Merge pull request #195 from avantifellows/main #29

Merge pull request #195 from avantifellows/main

Merge pull request #195 from avantifellows/main #29

name: Deploy to EC2 prod
on:
push:
branches: ["release"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy in EC2
env:
PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
HOSTNAME: ${{ secrets.HOSTNAME }}
USER_NAME: ${{ secrets.USER_NAME }}
run: |
echo "$PRIVATE_KEY" > private_key && chmod 600 private_key
ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} '
#Setting environment variables .
cd /var/www/html/db-service-prod/config
sed -i "s|DATABASE_URL=.*|DATABASE_URL=${{ secrets.PRODUCTION_DATABASE_URL }}|" .env
sed -i "s|SECRET_KEY_BASE=.*|SECRET_KEY_BASE=${{ secrets.PRODUCTION_SECRET_KEY_BASE }}|" .env
sed -i "s|PHX_HOST=.*|PHX_HOST=${{ secrets.PRODUCTION_PHX_HOST }}|" .env
sed -i "s|WHITELISTED_DOMAINS=.*|WHITELISTED_DOMAINS=${{ secrets.PRODUCTION_WHITELISTED_DOMAINS }}|" .env
sed -i "s|POOL_SIZE=.*|POOL_SIZE=${{ secrets.PRODUCTION_POOL_SIZE }}|" .env
sed -i "s|PORT=.*|PORT=${{ secrets.PRODUCTION_PORT }}|" .env
sed -i "s|BEARER_TOKEN=.*|BEARER_TOKEN=${{ secrets.PRODUCTION_BEARER_TOKEN }}|" .env
#Now we have got the access of EC2 and we will start the deploy .
cd /var/www/html
sudo ./kill_process_on_port_8080.sh
cd /var/www/html/db-service-prod/ &&
sudo git checkout . &&
if [ -f /var/www/html/db-service-prod/priv/static/swagger.json ]; then
sudo rm /var/www/html/db-service/priv/static/swagger.json
fi
sudo git pull origin release &&
sudo MIX_ENV=prod mix deps.get &&
sudo MIX_ENV=prod mix deps.compile &&
sudo MIX_ENV=prod mix ecto.migrate &&
sudo MIX_ENV=prod mix phx.swagger.generate &&
sudo MIX_ENV=prod elixir --erl "-detached" -S mix phx.server
'