From 0710b7bb16012f6dcb633df7d900e36fca07c7f2 Mon Sep 17 00:00:00 2001 From: Zabullah Date: Thu, 14 Aug 2025 09:27:07 +0200 Subject: [PATCH 1/4] ci (docker.yml): add docker.yml for github action. --- .github/workflows/docker.yml | 65 ++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..be384458 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,65 @@ +name: Docker Build and Push + +on: + push: + branches: + - develop + paths: + - 'api/Dockerfile' + - 'bot/Dockerfile' + - 'docker-compose.yml' + - 'api/**' + - 'bot/**' + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + + - name: Build and push API image + uses: docker/build-push-action@v4 + with: + context: ./api + file: ./api/Dockerfile + push: true + tags: | + mzabiullah/onboarding-api:latest + mzabiullah/onboarding-api:${{ github.sha }} + + #bot + - name: Build and push Bot image + uses: docker/build-push-action@v4 + with: + context: ./bot + file: ./bot/Dockerfile + push: true + tags: | + mzabiullah/onboarding-bot:latest + mzabiullah/onboarding-bot:${{ github.sha }} + + + - name: Run docker-compose up + run: | + docker-compose up -d + + docker-compose ps + + + - name: Tear down docker-compose + if: always() + run: docker-compose down + + From cd8c46439b510f9817fa47011e28b4032b4559c7 Mon Sep 17 00:00:00 2001 From: Zabullah Date: Thu, 14 Aug 2025 09:52:17 +0200 Subject: [PATCH 2/4] ci (docker.yml): modified docker.yml for github action. --- .github/workflows/docker.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index be384458..3d7f08da 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -54,8 +54,21 @@ jobs: - name: Run docker-compose up run: | docker-compose up -d + - name: Wait for Postgres + run: | + echo "Waiting for postgres to be ready..." + for i in {1..20}; do + if docker exec postgres pg_isready -U myuser -d mydatabase; then + echo "Postgres is ready!" + break + fi + echo "Postgres is not ready yet, waiting..." + sleep 3 + done + + - name: Show docker-compose status - docker-compose ps + run: docker-compose ps - name: Tear down docker-compose From 1a928958df186569e8e081a6457b65c5b5118ded Mon Sep 17 00:00:00 2001 From: Zabullah Date: Thu, 14 Aug 2025 11:15:58 +0200 Subject: [PATCH 3/4] ci (test.yml): modified test.yml for github action. --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ca31aa02..63f6cf47 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -37,10 +37,13 @@ jobs: - name: Install dependencies run: npm ci + - name: Install PostgreSQL client + run: sudo apt-get update && sudo apt-get install -y postgresql-client + - name: Wait for Postgres to be ready run: | - for i in {1..10}; do - pg_isready -h localhost -p 5432 && exit 0 + for i in {1..20}; do + pg_isready -h localhost -p 5433 -U admin -d onboarding-db && exit 0 echo "Waiting for postgres..." sleep 3 done From 0d6a33c8972834df53d472c8ce75aa573ae7bc72 Mon Sep 17 00:00:00 2001 From: Zabullah Date: Thu, 14 Aug 2025 11:40:50 +0200 Subject: [PATCH 4/4] ci (test.yml): modified test.yml for github action. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 63f6cf47..885319a3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,7 +43,7 @@ jobs: - name: Wait for Postgres to be ready run: | for i in {1..20}; do - pg_isready -h localhost -p 5433 -U admin -d onboarding-db && exit 0 + pg_isready -h localhost -p 5433 && exit 0 echo "Waiting for postgres..." sleep 3 done