Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: backend-ci.yml
on:
pull_request:
branches: ["develop"]
branches: ["develop", "main"]
paths:
- "**"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/dev-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ jobs:

mkdir -p "$BASE_DIR"
cat > "$BASE_DIR/.env" <<'EOF'
SPRING_PROFILES_ACTIVE=dev
LOG_PATH=${{ secrets.LOG_PATH }}
JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
JWT_SECRET_EXPIRE_LENGTH=${{ secrets.JWT_SECRET_EXPIRE_LENGTH }}
Expand Down
80 changes: 80 additions & 0 deletions .github/workflows/prod-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: prod-cd.yml

on:
push:
branches: ["main"]
paths:
- "**"

jobs:
build-and-push:
runs-on: self-hosted
steps:
- name: Checkout source
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
cache-read-only: false

- name: Build project
run: ./gradlew clean bootJar

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and Push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/crew-wiki:latest
${{ secrets.DOCKERHUB_USERNAME }}/crew-wiki:${{ github.sha }}

deploy:
needs: build-and-push
runs-on: self-hosted
steps:
- name: Deploy to Server
run: |
set -euo pipefail
BASE_DIR=/home/ubuntu/crew-wiki
IMG=${{ secrets.DOCKERHUB_USERNAME }}/crew-wiki:latest

mkdir -p "$BASE_DIR"
cat > "$BASE_DIR/.env" <<'EOF'
SPRING_PROFILES_ACTIVE=prod
LOG_PATH=${{ secrets.LOG_PATH }}
JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
JWT_SECRET_EXPIRE_LENGTH=${{ secrets.JWT_SECRET_EXPIRE_LENGTH }}
PROD_DB_URL=${{ secrets.PROD_DB_URL }}
PROD_DB_USERNAME=${{ secrets.PROD_DB_USERNAME }}
PROD_DB_PASSWORD=${{ secrets.PROD_DB_PASSWORD }}
AWS_CREDENTIALS_ACCESS_KEY=${{ secrets.AWS_CREDENTIALS_ACCESS_KEY }}
AWS_CREDENTIALS_SECRET_KEY=${{ secrets.AWS_CREDENTIALS_SECRET_KEY }}
S3_BUCKET=${{ secrets.S3_BUCKET }}
EOF

docker rm -f crew-wiki || true
docker pull "$IMG"

docker run -d \
--name crew-wiki \
--env-file "$BASE_DIR/.env" \
-p 8080:8080 \
"$IMG"
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ COPY build/libs/*.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-Dspring.profiles.active=dev", "-jar", "app.jar"]
ENTRYPOINT ["java", "-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE}", "-jar", "app.jar"]
Loading