Merge pull request #14 from Sans-arch/refactor #37
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: CI Build Docker-Compose Backend App | |
on: | |
push: | |
branches: [main] | |
jobs: | |
build-node-app: | |
runs-on: ubuntu-latest | |
env: | |
APP_PORT: ${{ secrets.APP_PORT }} | |
APP_CORS_ALLOWED_ORIGINS: ${{ secrets.APP_CORS_ALLOWED_ORIGINS }} | |
JWT_SECRET: ${{ secrets.JWT_SECRET }} | |
TWITCH_CLIENT_ID: ${{ secrets.TWITCH_CLIENT_ID }} | |
TWITCH_SECRET_ID: ${{ secrets.TWITCH_SECRET_ID }} | |
DB_USER: ${{ secrets.DB_USER }} | |
DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
DB_HOST: ${{ secrets.DB_HOST }} | |
DB_PORT: ${{ secrets.DB_PORT }} | |
DB_NAME: ${{ secrets.DB_NAME }} | |
DB_SCHEMA: ${{ secrets.DB_SCHEMA }} | |
DB_URL: postgresql://${{ secrets.DB_USER}}:${{secrets.DB_PASSWORD}}@${{secrets.DB_HOST}}:${{secrets.DB_PORT}}/${{secrets.DB_NAME}}?schema=${{secrets.DB_SCHEMA}} | |
PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | |
HOSTNAME: ${{secrets.SSH_HOST}} | |
USER_NAME: ${{secrets.USER_NAME}} | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install Dependencies | |
run: npm install | |
- name: Run Tests | |
run: npm test | |
- name: Set up Docker Compose | |
run: | | |
docker-compose -f docker-compose.actions.yml up -d | |
- name: Clean Up | |
run: | | |
docker-compose -f docker-compose.actions.yml down | |
docker system prune -f | |
- name: Deploy to AWS EC2 | |
run: | | |
echo "$PRIVATE_KEY" > private_key && chmod 600 private_key | |
ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} ' | |
# Now we have got the access of EC2 and we will start the deploy . | |
cd gamehub-backend | |
git pull | |
docker-compose build | |
docker-compose up -d --force-recreate | |
docker ps | |
' |