Add dynamic deployment for frontend. #6
Workflow file for this run
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: Generate Docker Containers | |
on: | |
push: | |
tags: | |
- '*' | |
jobs: | |
database: | |
name: Build backend database | |
runs-on: ubuntu-latest | |
env: | |
DATABASE_URL: "postgresql://postgres:postgres@localhost:5555/postgres" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Start database | |
working-directory: backend | |
run: | | |
docker run -d \ | |
--name my-db \ | |
-p 5555:5432 \ | |
-e PGDATA=/data \ | |
-e POSTGRES_USER=postgres \ | |
-e POSTGRES_PASSWORD=postgres \ | |
-e POSTGRES_DB=postgres \ | |
postgres:16 | |
- name: Init DB with prisma | |
working-directory: backend | |
run: npx prisma migrate dev --name init | |
- name: Seed DB with data | |
working-directory: backend | |
run: npm run seed | |
- name: Commit current state of the container | |
working-directory: backend | |
run: docker commit my-db daemontus/bbm-database:latest | |
- name: Push image | |
working-directory: backend | |
run: docker push daemontus/bbm-database | |
backend: | |
name: Build backend image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build image | |
working-directory: backend | |
run: docker build -t daemontus/bbm-backend . | |
- name: Push image | |
working-directory: backend | |
run: docker push daemontus/bbm-backend | |
frontend: | |
name: Build frontend image | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Add Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
working-directory: frontend | |
run: npm install | |
- name: Build frontend | |
working-directory: frontend | |
run: npm run build | |
- name: Build image | |
working-directory: frontend | |
run: docker build -t daemontus/bbm-frontend . | |
- name: Push image | |
working-directory: frontend | |
run: docker push daemontus/bbm-frontend |