Skip to content

Commit

Permalink
release: 디스커버리 서비스 2차 배포 (#276)
Browse files Browse the repository at this point in the history
* feat: discovery service settings (#15)

* feat: init project

* feat: set discovery

* feat: create Dockfile (#20)

* feat: create Docker Hub push flow (#22)

* feat: create Docker Hub push flow

* docs : 도커허브에 이미지 푸쉬 전 JAR파일을 빌드하는 작업을 추가합니다.

* docs : GitHubActions jobs내 문법을 수정합니다.

* bug: update build script with right gradle-wrapper.jar (#24)

* fix: add new gradle-wrapper.jar

* fix: add build script with fixed working dir

* refactor: update dockerhub push flow (#27)

* fix: add multi platform (#39)

* fix: remove additional commends (#97)

* script: update GitHub workflow for Dockerhub push on discovery service

* docs : ci-cd

* docs : typo

* docs : typo

* ci-cd : typo

* ci-cd : modify typo

* ci-ci : modify typo

* ci-cd : modify typo

* ci-cd : modify typo

* ci-cd : resolve permission

* ci-cd : typo

* ci-cd : dockerhub push script

* ci-cd : typo

* ci-cd : typo

* ci-cid

* refactor : typo

* ci-cd : resolve permission
  • Loading branch information
K-Diger authored Feb 21, 2024
1 parent 11f7a3d commit ad8cbcf
Show file tree
Hide file tree
Showing 2 changed files with 157 additions and 0 deletions.
97 changes: 97 additions & 0 deletions .github/workflows/discovery-ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: DiscoveryService CI/CD by jar

on:
push:
branches:
- 'discovery/dev'

jobs:
build-and-push:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Cache Gradle dependencies
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x src/discovery-service/gradlew

- name: 프로젝트 빌드
env:
EUREKA_HOST: ${{ secrets.EUREKA_HOST }}
EUREKA_DEFAULT_ZONE: ${{ secrets.EUREKA_DEFAULT_ZONE }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

AUTH_JWT_SECRET_KEY: ${{ secrets.AUTH_JWT_SECRET_KEY }}
AUTH_MAIL_HOST: ${{ secrets.AUTH_MAIL_HOST }}
AUTH_MAIL_PASSWORD: ${{ secrets.AUTH_MAIL_PASSWORD }}
AUTH_MAIL_PORT: ${{ secrets.AUTH_MAIL_PORT }}
AUTH_MAIL_USERNAME: ${{ secrets.AUTH_MAIL_USERNAME }}
AUTH_REDIS_HOST: ${{ secrets.AUTH_REDIS_HOST }}
AUTH_REDIS_PORT: ${{ secrets.AUTH_REDIS_PORT }}

USER_DB_URI: ${{ secrets.USER_DB_URI }}
USER_DB_USERNAME: ${{ secrets.USER_DB_USERNAME }}
USER_DB_USER_DB_PASSWORD: ${{ secrets.USER_DB_USER_DB_PASSWORD }}

SOCIAL_DB_URI: ${{ secrets.SOCIAL_DB_URI }}
SOCIAL_DB_USERNAME: ${{ secrets.SOCIAL_DB_USERNAME }}
SOCIAL_DB_PASSWORD: ${{ secrets.SOCIAL_DB_PASSWORD }}

TIMELINE_REDIS_HOST: ${{ secrets.TIMELINE_REDIS_HOST }}
TIMELINE_REDIS_PORT: ${{ secrets.TIMELINE_REDIS_PORT }}
TIMELINE_REDIS_PASSWORD: ${{ secrets.TIMELINE_REDIS_PASSWORD }}

NOTIFICATOIN_DB_URI: ${{ secrets.NOTIFICATOIN_DB_URI }}
NOTIFICATOIN_DB_USERNAME: ${{ secrets.NOTIFICATOIN_DB_USERNAME }}
NOTIFICATOIN_DB_USER_DB_PASSWORD: ${{ secrets.NOTIFICATOIN_DB_USER_DB_PASSWORD }}

LIGHTSAIL_HOST: ${{ secrets.LIGHTSAIL_HOST }}
LIGHTSAIL_KEY: ${{ secrets.LIGHTSAIL_KEY }}
LIGHTSAIL_USERNAME: ${{ secrets.LIGHTSAIL_USERNAME }}

PASSPORT_KEY: ${{ secrets.PASSPORT_KEY }}
PASSPORT_ALGORITHM: ${{ secrets.PASSPORT_ALGORITHM }}

KAFKA_SERVERS: ${{ secrets.KAFKA_SERVERS }}
working-directory: ./src/discovery-service
run: ./gradlew clean build -x test
shell: bash

- name: API 빌드 파일 복사
uses: appleboy/scp-action@master
with:
host: ${{ secrets.LIGHTSAIL_HOST }}
username: ${{ secrets.LIGHTSAIL_USERNAME }}
key: ${{ secrets.LIGHTSAIL_KEY }}
source: "src/discovery-service/build/libs/easel-discovery-service-0.0.1-SNAPSHOT.jar"
target: "/home/ubuntu/palette/discovery-service"

- name: API LIGHTSAIL 인스턴스 접속 및 애플리케이션 실행
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.LIGHTSAIL_HOST }}
username: ${{ secrets.LIGHTSAIL_USERNAME }}
key: ${{ secrets.LIGHTSAIL_KEY }}
script: |
cd /home/ubuntu/palette/discovery-service
sudo su
./stop.sh
./operate.sh
60 changes: 60 additions & 0 deletions .github/workflows/dockerhub-push-discovery.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: DiscoveryService DockerHub Push

on:
push:
branches:
- 'discovery/dev'

jobs:
build-and-push:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Cache Gradle dependencies
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x src/discovery-service/gradlew

- name: Build and Push Docker Image
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

PASSPORT_KEY: ${{ secrets.PASSPORT_KEY }}
PASSPORT_ALGORITHM: ${{ secrets.PASSPORT_ALGORITHM }}

AUTH_MAIL_HOST: ${{ secrets.AUTH_MAIL_HOST }}
AUTH_MAIL_ADDRESS: ${{ secrets.AUTH_MAIL_ADDRESS }}
AUTH_MAIL_USERNAME: ${{ secrets.AUTH_MAIL_USERNAME }}
AUTH_MAIL_PASSWORD: ${{ secrets.AUTH_MAIL_PASSWORD }}
AUTH_MAIL_PORT: ${{ secrets.AUTH_MAIL_PORT }}

AUTH_REDIS_HOST: ${{ secrets.AUTH_REDIS_HOST }}
AUTH_REDIS_PORT: ${{ secrets.AUTH_REDIS_PORT }}

AUTH_JWT_SECRET_KEY: ${{ secrets.AUTH_JWT_SECRET_KEY }}
run: |
cd src/discovery-service
./gradlew clean build -x test
docker run --privileged --rm tonistiigi/binfmt --install all
docker buildx create --use
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
docker buildx build --platform=linux/amd64,linux/arm64 -t $DOCKER_USERNAME/discovery-service:latest . --push

0 comments on commit ad8cbcf

Please sign in to comment.