login api added to generate jwt on login #14
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: Deploy to EC2 | |
on: | |
pull_request: | |
types: [closed] | |
branches: [ main ] | |
workflow_dispatch: | |
env: | |
DOCKER_IMAGE_TAG: ${{ github.sha }} | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
if: github.event.pull_request.merged == true | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
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: Setup SSH and Deploy | |
run: | | |
# Setup SSH | |
mkdir -p ~/.ssh | |
echo "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/id_rsa | |
chmod 600 ~/.ssh/id_rsa | |
ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts | |
# Deploy to EC2 | |
ssh ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} " | |
# Export AWS credentials | |
export AWS_ACCESS_KEY_ID='${{ secrets.AWS_ACCESS_KEY_ID }}' | |
export AWS_SECRET_ACCESS_KEY='${{ secrets.AWS_SECRET_ACCESS_KEY }}' | |
export AWS_REGION='${{ secrets.AWS_REGION }}' | |
# Create and setup directories | |
sudo mkdir -p /data/newsletter/vault | |
sudo chown -R ${{ secrets.EC2_USER }}:${{ secrets.EC2_USER }} /data/newsletter | |
# Sync S3 | |
aws s3 sync s3://${{ secrets.S3_CONFIG_BUCKET }}/vault/ /data/newsletter/vault/ | |
# Deploy with Docker | |
sudo docker build -t ailert-newsletter:${{ env.DOCKER_IMAGE_TAG }} https://github.com/${{ github.repository }}.git#${{ github.ref }} | |
sudo docker stop ailert-newsletter || true | |
sudo docker rm ailert-newsletter || true | |
sudo docker run -d \ | |
--name ailert-newsletter \ | |
-p 5000:5000 \ | |
-v /data/newsletter/vault:/app/db_handler/vault \ | |
--restart unless-stopped \ | |
-e AWS_ACCESS_KEY_ID='${{ secrets.AWS_ACCESS_KEY_ID }}' \ | |
-e AWS_SECRET_ACCESS_KEY='${{ secrets.AWS_SECRET_ACCESS_KEY }}' \ | |
-e AWS_REGION='${{ secrets.AWS_REGION }}' \ | |
-e SMTP_USERNAME='${{ secrets.SMTP_USERNAME }}' \ | |
-e SMTP_PASSWORD='${{ secrets.SMTP_PASSWORD }}' \ | |
-e JWT_SECRET='${{ secrets.JWT_SECRET }}' \ | |
ailert-newsletter:${{ env.DOCKER_IMAGE_TAG }} | |
sudo docker system prune -f --volumes | |
" | |
- name: Cleanup | |
if: always() | |
run: rm -f ~/.ssh/id_rsa |