기타/인프라 구축과정

[Infra] 5. Jenkins 프로젝트 빌드 - Voda Project

배발자 2023. 4. 4.
반응형

Jenkins → voda_back_build_test → 구성 → Build Steps

 

 

JAVA

 

| /home/ubuntu/jenkins_home/workspace/voda_back_build_test/backend/java

cd /var/jenkins_home/workspace/voda_back_build_test
cp /var/jenkins_home/workspace/yml/application-db.yml backend/java/src/main/resources/
cp /var/jenkins_home/workspace/yml/application-oauth.yml backend/java/src/main/resources/
cd /var/jenkins_home/workspace/voda_back_build_test/backend/java
chmod +x gradlew
./gradlew clean build
cp /var/jenkins_home/workspace/voda_back_build_test/backend/java/build/libs/voda-0.0.1-SNAPSHOT.jar /var/jenkins_home/workspace/deploy_test/back_java

 

  1. /var/jenkins_home/workspace/voda_back_build_test 디렉토리로 이동.
  2. /var/jenkins_home/workspace/yml/application-db.yml 파일을 backend/java/src/main/resources/ 디렉토리로 복사.
  3. /var/jenkins_home/workspace/yml/application-oauth.yml 파일을 backend/java/src/main/resources/ 디렉토리로 복사.
  4. backend/java 디렉토리로 이동.
  5. gradlew 파일에 실행 권한을 부여.
  6. ./gradlew clean build 명령어를 실행하여 Java 프로젝트를 빌드.
  7. 빌드된 voda-0.0.1-SNAPSHOT.jar 파일을 /var/jenkins_home/workspace/deploy_test/back_java 디렉토리로 복사.

 

이 스크립트는 Java 언어로 작성된 백엔드 애플리케이션을 빌드하고, 빌드된 바이너리 파일을 다른 위치로 복사하는 과정을 수행한다.

 

* application-db.yml과 application-oauth.yml에는 깃랩에 올라가면 안되는 정보들을 담고 있기 때문에 서버에 해당 .yml 파일들을 보관하고 있다. 즉, 애플리케이션에서 사용되는 데이터베이스와 인증 서비스에 대한 설정 파일도 복사하여 애플리케이션에 필요한 환경을 구성

 

FRONT

 

| /home/ubuntu/jenkins_home/workspace/voda_back_build_test/backend/frontend

cd /var/jenkins_home/workspace/voda_back_build_test/frontend
cp /var/jenkins_home/workspace/yml/front.env /var/jenkins_home/workspace/voda_back_build_test/frontend/.env
npm install
npm run build
cp -r /var/jenkins_home/workspace/voda_back_build_test/frontend/dist /var/jenkins_home/workspace/deploy_test/front_vue

 

  1. /var/jenkins_home/workspace/voda_back_build_test/frontend 디렉토리로 이동.
  2. /var/jenkins_home/workspace/yml/front.env 파일을 .env 파일로 복사.
  3. npm install 명령어를 실행하여 필요한 라이브러리를 설치.
  4. npm run build 명령어를 실행하여 Vue.js 프로젝트를 빌드.
  5. 빌드된 파일을 /var/jenkins_home/workspace/deploy_test/front_vue 디렉토리로 복사.

 

즉, 이 스크립트는 Vue.js로 작성된 프론트엔드 애플리케이션을 빌드하고, 빌드된 파일을 다른 위치로 복사하는 과정을 수행하는 것이다.

 

* .env 파일은 깃랩에 올라가면 안되는 정보들을 담고 있기 때문에 서버에 해당 .env 파일을 보관하고 있다. 즉, 프론트엔드 애플리케이션에서 사용되는 환경 변수 설정 파일도 복사하여 애플리케이션에 필요한 환경을 구성.

 

PYTHON

 

| /home/ubuntu/jenkins_home/workspace/voda_back_build_test/backend/python

cp -r /var/jenkins_home/workspace/voda_back_build_test/backend/python/ /var/jenkins_home/workspace/deploy_python/
cp /var/jenkins_home/workspace/yml/python.env /var/jenkins_home/workspace/deploy_python/python/.env
if [ ! -d "/var/jenkins_home/workspace/deploy_python/python/experiments/emotion_text/weight" ]
then
    mkdir -p /var/jenkins_home/workspace/deploy_python/python/experiments/emotion_text/weight
    mkdir -p /var/jenkins_home/workspace/deploy_python/python/voice_file
fi
cp /var/jenkins_home/workspace/model_weight/2_acc_7_merge_emotion.pt /var/jenkins_home/workspace/deploy_python/python/experiments/emotion_text/weight/
cp /var/jenkins_home/workspace/model_weight/sermodel.h5 /var/jenkins_home/workspace/deploy_python/python/ser/

 

  1. /var/jenkins_home/workspace/voda_back_build_test/backend/python/ 디렉토리를 /var/jenkins_home/workspace/deploy_python/ 디렉토리로 복사.
  2. /var/jenkins_home/workspace/yml/python.env 파일을 /var/jenkins_home/workspace/deploy_python/python/.env 경로로 복사.
  3. /var/jenkins_home/workspace/deploy_python/python/experiments/emotion_text/weight 디렉토리가 존재하지 않으면, 해당 디렉토리와 /var/jenkins_home/workspace/deploy_python/python/voice_file 디렉토리를 생성.
  4. /var/jenkins_home/workspace/model_weight/2_acc_7_merge_emotion.pt 파일을 /var/jenkins_home/workspace/deploy_python/python/experiments/emotion_text/weight/ 경로로 복사.
  5. /var/jenkins_home/workspace/model_weight/sermodel.h5 파일을 /var/jenkins_home/workspace/deploy_python/python/ser/ 경로로 복사.

 

이 스크립트는 Python으로 작성된 백엔드 애플리케이션에 필요한 파일과 환경을 구성하고, 해당 파일들을 다른 위치로 복사하는 과정을 수행한다. 감성 분석 모델을 포함하는 2_acc_7_merge_emotion.pt 파일과 음성 인식 모델을 포함하는 sermodel.h5 파일을 복사하고, 이 모델들을 사용하는데 필요한 디렉토리를 생성한다.

 

필자의 프로젝트는 음성 감정을 추출하는 서비스이기에 해당 파일들이 필요로 한다. 

반응형

댓글