Jenkins에서 Job을 만들 때 Tips 컬렉션
3432 단어 Jenkins
개요
Jenkins에서 Job을 만들 때의 Tips집입니다.
Tips
오래된 빌드를 폐기
이전 빌드 삭제에 체크를 하여 빌드의 보존일수 또는 최대수를 설정합니다.
고급 설정에서 빌드 아티팩트의 일 수와 최대 수를 설정할 수도 있습니다.
Jenkins 기계의 용량 부족 대책이됩니다.
클론 및 페치 시간 초과
소스 코드 관리에서 Git을 사용하는 경우에는 타임 아웃 시간을 설정할 수 있습니다.
[소스 코드 관리] -> [Git] -> [추가 처리] -> [Advanced clone behavious]에서 설정할 수 있습니다.
아무것도 설정하지 않으면 10분입니다. 큰 리포지토리의 경우, 약간 짧을 수도 있고 여기에서 Job이 넘어질 수도 있으므로 주의입니다.
리포지토리의 일부를 복제합니다.
Sparse checkout paths에서 원하는 디렉토리만 clone 해 오는 것이 가능하게 되어 있습니다.
프로젝트를 삭제해도 slave의 workspace는 남아 버리는 문제에 대응
Jenkins를 master-slave 구성으로 하고 있는 경우에는, 관리 화면상에서 프로젝트를 삭제해도 slave상의 작업 공간은 계속 남아 버립니다.
다음 스크립트를 Job으로 slave에서 정기적으로 실행하면 존재하지 않는 프로젝트의 작업 공간을 삭제할 수 있습니다.
require 'net/http'
require 'uri'
require 'fileutils'
require 'json'
uri = URI.parse("http://JENKINS_URL/api/json")
request = Net::HTTP::Get.new(uri)
request.basic_auth("user_name", "password")
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
result = JSON.load(response.body)
jobs = result["jobs"].map{|job| job["name"] }
workspace_dirs = Dir.glob("../*")
workspace_dirs = workspace_dirs.map{|dir| File.basename(dir)}
workspace_dirs.each do |dir|
FileUtils.rm_rf("../#{dir}") unless jobs.include?(dir)
end
puts "Job of jenkins synchronization completed!"
auth 인증을 받지 않은 경우는 request.basic_auth
는 설정 불필요합니다.
Xcode 아카이브를 정기적으로 삭제
Xcode 빌드 한정의 이야기입니다만, Xcode의 캐쉬나 아카이브는 정기적으로 삭제하면 용량 부족 대책이 됩니다. 불필요한 경우에는 삭제해 봅시다.
# Xcodeアーカイブ、キャッシュクリア
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Developer/Xcode/Archives
↑ 이 스크립트를 정기 Job로서 Jenkins에서 실행시킨다.
Jenkins를 통해 (Master -> Slave) keychain 액세스 실패
키체인 액세스를 잠금 해제해야 합니다.
기계를 다시 시작할 때마다 필요합니다.
security unlock -p パスワード ~/Library/Keychains/login.keychain
일부 Sierra 버전에서는 다음 설정도 필요합니다.
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k LoginPassword login.keychain
참고
* h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s Chion s / 39868578 / Sekuri ty-kodeshi gn-in-shi-Erra-y y-chan g-re-s-a-s-s t-l-setchin gs - an d-u-p
Reference
이 문제에 관하여(Jenkins에서 Job을 만들 때 Tips 컬렉션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/orange_lily1127/items/1feceec41534dcc69cd7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
오래된 빌드를 폐기
이전 빌드 삭제에 체크를 하여 빌드의 보존일수 또는 최대수를 설정합니다.
고급 설정에서 빌드 아티팩트의 일 수와 최대 수를 설정할 수도 있습니다.
Jenkins 기계의 용량 부족 대책이됩니다.
클론 및 페치 시간 초과
소스 코드 관리에서 Git을 사용하는 경우에는 타임 아웃 시간을 설정할 수 있습니다.
[소스 코드 관리] -> [Git] -> [추가 처리] -> [Advanced clone behavious]에서 설정할 수 있습니다.
아무것도 설정하지 않으면 10분입니다. 큰 리포지토리의 경우, 약간 짧을 수도 있고 여기에서 Job이 넘어질 수도 있으므로 주의입니다.
리포지토리의 일부를 복제합니다.
Sparse checkout paths에서 원하는 디렉토리만 clone 해 오는 것이 가능하게 되어 있습니다.
프로젝트를 삭제해도 slave의 workspace는 남아 버리는 문제에 대응
Jenkins를 master-slave 구성으로 하고 있는 경우에는, 관리 화면상에서 프로젝트를 삭제해도 slave상의 작업 공간은 계속 남아 버립니다.
다음 스크립트를 Job으로 slave에서 정기적으로 실행하면 존재하지 않는 프로젝트의 작업 공간을 삭제할 수 있습니다.
require 'net/http'
require 'uri'
require 'fileutils'
require 'json'
uri = URI.parse("http://JENKINS_URL/api/json")
request = Net::HTTP::Get.new(uri)
request.basic_auth("user_name", "password")
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
result = JSON.load(response.body)
jobs = result["jobs"].map{|job| job["name"] }
workspace_dirs = Dir.glob("../*")
workspace_dirs = workspace_dirs.map{|dir| File.basename(dir)}
workspace_dirs.each do |dir|
FileUtils.rm_rf("../#{dir}") unless jobs.include?(dir)
end
puts "Job of jenkins synchronization completed!"
auth 인증을 받지 않은 경우는
request.basic_auth
는 설정 불필요합니다.Xcode 아카이브를 정기적으로 삭제
Xcode 빌드 한정의 이야기입니다만, Xcode의 캐쉬나 아카이브는 정기적으로 삭제하면 용량 부족 대책이 됩니다. 불필요한 경우에는 삭제해 봅시다.
# Xcodeアーカイブ、キャッシュクリア
rm -rf ~/Library/Developer/Xcode/DerivedData/
rm -rf ~/Library/Developer/Xcode/Archives
↑ 이 스크립트를 정기 Job로서 Jenkins에서 실행시킨다.
Jenkins를 통해 (Master -> Slave) keychain 액세스 실패
키체인 액세스를 잠금 해제해야 합니다.
기계를 다시 시작할 때마다 필요합니다.
security unlock -p パスワード ~/Library/Keychains/login.keychain
일부 Sierra 버전에서는 다음 설정도 필요합니다.
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k LoginPassword login.keychain
참고
* h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s Chion s / 39868578 / Sekuri ty-kodeshi gn-in-shi-Erra-y y-chan g-re-s-a-s-s t-l-setchin gs - an d-u-p
Reference
이 문제에 관하여(Jenkins에서 Job을 만들 때 Tips 컬렉션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/orange_lily1127/items/1feceec41534dcc69cd7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)