Jenkins에서 프런트 엔드와 백엔드를 하나의 WAR 파일로 결합
개요
Jenkins2 계에서 표준으로 사용할 수있게 된 파이프 라인 빌드를 사용하여
프런트 엔드와 백엔드의 소스를 하나의 WAR 파일로서 빌드하는 설정을 쓸 때의 내용.
상세
pipeline {
agent any
stages {
// フロントエンドのビルド
stage('frontend_build') {
steps {
node('master') {
deleteDir()
git branch: 'master', changelog: false, poll: false, url: '【フロントエンドのリポジトリURL】'
bat label: '', script: 'npm install'
bat label: '', script: 'npm run build_dev'
// ビルドしたファイルを stash で退避
stash name: 'frontend', includes: 'dist/**'
echo 'frontend build success'
}
}
}
// warファイルのビルド
stage('backend_build') {
steps {
node('master') {
deleteDir()
git branch: 'master', changelog: false, poll: false, url: '【フロントエンドのリポジトリURL】'
// ビルドしたファイルを unstash で取り出す
unstash 'frontend'
bat label: 'delete_sample', script: 'rd /s /q src\\main\\resources\\static'
bat label: 'mkdir_static', script: 'mkdir src\\main\\resources\\static'
bat label: 'copy_frontend_build', script: 'xcopy /S dist src\\main\\resources\\static'
bat label: 'delete_frontend_build', script: 'rd /s /q dist'
withEnv(['JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_201']) {
bat label: 'bootWar', script: 'gradlew.bat bootWar'
}
archiveArtifacts 'build/libs/**'
echo 'backend build success'
}
}
}
}
}
요약
노드간의 빌드한 파일의 전달이 「stash」 「unstash」로 용이하게 할 수 있으므로, 생각했던 것보다 간단하게 실현할 수 있었다.
프런트 엔드의 빌드에 사용하는 노드를 다른 서버로 움직이거나 하는 편이 좋다고는 당초부터 생각하고 있었지만,
그다지 시간도 걸리지 않았기 때문에, 움직이는 것을 우선해서 상기와 같은 설정이 되어 있다.
움직이기 시작해 큰 문제가 없기 때문에, 현상 유지의 뒤틀림이라고 말해 버리고 있지만,
Reference
이 문제에 관하여(Jenkins에서 프런트 엔드와 백엔드를 하나의 WAR 파일로 결합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nkk777dev/items/d3dd0e52b5d992e70616
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Jenkins에서 프런트 엔드와 백엔드를 하나의 WAR 파일로 결합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nkk777dev/items/d3dd0e52b5d992e70616텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)