Skip to content

ci: test deploy

ci: test deploy #33

Workflow file for this run

name: Deploy to EC2
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: Dev
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Deploy to EC2
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
EC2_HOST: ${{ secrets.EC2_HOST }}
EC2_USER: ${{ secrets.EC2_USER }}
EC2_KEY: ${{ secrets.EC2_KEY }}
MONGODB_CONNECTION_STRING: ${{ secrets.MONGODB_CONNECTION_STRING }}
CLERK_PUBLISHABLE_KEY: ${{ secrets.CLERK_PUBLISHABLE_KEY }}
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
CLERK_FRONTEND_API_URL: ${{ secrets.CLERK_FRONTEND_API_URL }}
CLERK_BACKEND_API_URL: ${{ secrets.CLERK_BACKEND_API_URL }}
CLERK_PEM_PUBLIC_KEY: ${{ secrets.CLERK_PEM_PUBLIC_KEY }}
run: |
echo "${{ secrets.EC2_KEY }}" | base64 --decode > ec2-key.pem
chmod 400 ec2-key.pem
echo "Trying to connect to ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} with key ec2-key.pem"
ssh -i ec2-key.pem -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} << 'EOF'
cd /home/${{ secrets.EC2_USER }}/stocky-server
echo "MONGODB_CONNECTION_STRING=${{ secrets.MONGODB_CONNECTION_STRING }}" > .env
echo "CLERK_PUBLISHABLE_KEY=${{ secrets.CLERK_PUBLISHABLE_KEY }}" >> .env
echo "CLERK_SECRET_KEY=${{ secrets.CLERK_SECRET_KEY }}" >> .env
echo "CLERK_FRONTEND_API_URL=${{ secrets.CLERK_FRONTEND_API_URL }}" >> .env
echo "CLERK_BACKEND_API_URL=${{ secrets.CLERK_BACKEND_API_URL }}" >> .env
echo "CLERK_PEM_PUBLIC_KEY=${{ secrets.CLERK_PEM_PUBLIC_KEY }}" >> .env
npm install
pm2 restart all || pm2 start ecosystem.config.cjs
EOF