Skip to content

Merge pull request #59 from easyappfactory/feat/internal-server-api #35

Merge pull request #59 from easyappfactory/feat/internal-server-api

Merge pull request #59 from easyappfactory/feat/internal-server-api #35

Workflow file for this run

name: Deploy to EC2
on:
push:
branches:
- main
- dev
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/auth-server:latest
${{ secrets.DOCKERHUB_USERNAME }}/auth-server:${{ github.sha }}
deploy:
needs: build-and-push
runs-on: ubuntu-latest
steps:
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.EC2_KEY }}" > ~/.ssh/ec2_key.pem
chmod 600 ~/.ssh/ec2_key.pem
- name: Prepare env file
env:
ENV_FILE_CONTENT: ${{ secrets.AUTH_BE_ENV_FILE }}
run: |
printf '%s\n' "$ENV_FILE_CONTENT" > auth-be.env
- name: Create env dir on EC2
run: |
ssh -o StrictHostKeyChecking=no -i ~/.ssh/ec2_key.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} 'mkdir -p ~/env'
- name: Copy env file to EC2
run: |
scp -o StrictHostKeyChecking=no -i ~/.ssh/ec2_key.pem auth-be.env ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:~/env/auth-be.env
- name: Copy docker-compose to EC2
run: |
scp -o StrictHostKeyChecking=no -i ~/.ssh/ec2_key.pem docker-compose.yml ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }}:~/
- name: Deploy auth-be only (EC2)
run: |
ssh -o StrictHostKeyChecking=no -i ~/.ssh/ec2_key.pem ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} '
set -e
export PATH="/usr/bin:/usr/local/bin:$PATH"
export DOCKERHUB_USERNAME="${{ secrets.DOCKERHUB_USERNAME }}"
echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
cd ~
docker compose pull auth-be
docker compose up -d auth-be
docker logout
'