diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 66ca398..e52c88c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,11 +4,14 @@ on: push: branches: - main + - dev jobs: - deploy: - name: Build and Deploy + deploy-dev: + name: Build and Deploy Development + if: github.ref == 'refs/heads/dev' runs-on: self-hosted + environment: Development steps: - name: Checkout @@ -27,8 +30,40 @@ jobs: - name: Restart docker run: | echo "Restarting docker" - docker compose down - docker compose up -d --build + docker compose -f docker-compose.dev.yml down + docker compose -f docker-compose.dev.yml up -d --build + echo "Docker restarted" + + - name: Clean up + run: | + echo "Cleaning up" + docker image prune -f + + deploy-production: + name: Build and Deploy Production + if: github.ref == 'refs/heads/main' + runs-on: self-hosted + environment: Production + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create project env + run: | + echo "${{ secrets.ENV_FILE }}" > .env + + - name: Create fe env + run: | + cd Frontend/project-CL + echo "${{ secrets.VITE_ENV_FILE }}" > .env.production + cat .env.production + + - name: Restart docker + run: | + echo "Restarting docker" + docker compose -f docker-compose.prod.yml down + docker compose -f docker-compose.prod.yml up -d --build echo "Docker restarted" - name: Clean up diff --git a/Backend/main.go b/Backend/main.go index 1eab754..92f592a 100644 --- a/Backend/main.go +++ b/Backend/main.go @@ -32,7 +32,7 @@ func main() { r := gin.Default() r.Use(cors.New(cors.Config{ - AllowOrigins: []string{"http://localhost:5173", "http://100.111.195.90:3000", "http://arjuna-server.taild15798.ts.net:3000"}, + AllowOrigins: []string{"http://localhost:5173", "http://100.111.195.90:3001", "https://core-life.arjunaa.my.id/"}, AllowMethods: []string{"GET", "POST", "PUT", "DELETE"}, AllowHeaders: []string{"Origin", "Content-Type", "Accept", "Authorization"}, AllowCredentials: true, @@ -53,5 +53,8 @@ func main() { finance.RegisterRouter(protected) } - r.Run(":8080") + err = r.Run(":8080") + if err != nil { + return + } } diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..6efe76a --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,47 @@ +services: + # --- DATABASE --- + db: + image: postgres:15-alpine + container_name: cl_database_development + restart: always + environment: + POSTGRES_USER: ${DB_USER} + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_DB: ${DB_NAME} + volumes: + - pg_data:/var/lib/postgresql/data + networks: + - erp_network + + # --- BACKEND (GOLANG) --- + backend: + build: ./Backend + container_name: cl_backend_development + restart: always + ports: + - "8081:8080" + depends_on: + - db + env_file: + - .env + networks: + - erp_network + + # --- FRONTEND (REACT) --- + frontend: + build: ./Frontend/project-CL + container_name: cl_frontend_development + restart: always + ports: + - "3001:80" + depends_on: + - backend + networks: + - erp_network + +volumes: + pg_data: + +networks: + erp_network: + driver: bridge \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.prod.yml similarity index 86% rename from docker-compose.yml rename to docker-compose.prod.yml index caece5d..dd153c5 100644 --- a/docker-compose.yml +++ b/docker-compose.prod.yml @@ -1,10 +1,8 @@ -version: '3.8' - services: # --- DATABASE --- db: image: postgres:15-alpine - container_name: cl_database + container_name: cl_database_production restart: always environment: POSTGRES_USER: ${DB_USER} @@ -18,7 +16,7 @@ services: # --- BACKEND (GOLANG) --- backend: build: ./Backend - container_name: cl_backend + container_name: cl_backend_production restart: always ports: - "8080:8080" @@ -34,7 +32,7 @@ services: # --- FRONTEND (REACT) --- frontend: build: ./Frontend/project-CL - container_name: cl_frontend + container_name: cl_frontend_production restart: always ports: - "3000:80"