Skip to content

Merge pull request #11 from yesitha/dev-yesitha #20

Merge pull request #11 from yesitha/dev-yesitha

Merge pull request #11 from yesitha/dev-yesitha #20

name: CI/CD Pipeline
on:
push:
branches:
- dev-yesitha
jobs:
build:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
POSTGRES_DB: itgura
POSTGRES_USER: postgres
POSTGRES_PASSWORD: root
ports:
- 5432:5432
options: --health-cmd "pg_isready -U postgres" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: Wait for PostgreSQL
run: |
echo "Waiting for PostgreSQL to be ready..."
until pg_isready -h localhost -p 5432 -U postgres; do
sleep 1
done
- name: Initialize Database
run: |
psql -v ON_ERROR_STOP=1 --host=localhost --username=postgres --dbname=itgura <<-EOSQL
CREATE SCHEMA resource_management;
CREATE SCHEMA payment_service;
CREATE SCHEMA auth_service;
CREATE SCHEMA quiz_management;
EOSQL
env:
PGPASSWORD: root
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and publish Docker image
run: mvn clean package -P build-docker-image
env:
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
# deploy:
# needs: build
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v2
# - name: Deploy to Server
# run: |
# ssh user@your-server "docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/your-image-name:latest && docker-compose up -d"
# env:
# DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
# DOCKER_HUB_ACCESS_TOKEN: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
# SERVER_SSH_USERNAME: ${{ secrets.SERVER_SSH_USERNAME }}
# SERVER_SSH_PASSWORD: ${{ secrets.SERVER_SSH_PASSWORD }}