개인 태그
16439 단어 jenkins2JenkinsPipeline
손바닥
docker run -p 8080:8080 -v /Users/yy_yank/jenkins:/var/jenkins_home jenkins
염가 좌석무대를 지목하고 싶어요.
stage("모든 관문 이름")
stage('prepare'){
// prepare...
}
stage('test'){
// test...
}
stage('build'){
// build...
}
마스터/슬레이브 장치 지정하기node(주 또는 종명)
stage('windowsでなにかする') {
node('windows') {
// do something
}
}
노드 이름의 매개 변수를 생략하면 마치 주인이 된 것 같다.stage('masterでなにかする') {
node{
// ここはマスター
}
}
파일의 존재 확인파일 경로
if(fileExists("./${target}")) {
echo "file exists ${target}"
}
서류를 만들고 싶어요.파일 경로
stage('write') {
node{
writeFile file:"./hogehoge.txt", text:"hogehoge~", encoding:"UTF-8"
}
}
노드 안에서 하지 않으면 어디에 써야 할지 모르겠다는 느낌을 준다.Started by user yy_yank
[Pipeline] stage
[Pipeline] { (write)
[Pipeline] writeFile
Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node
[Pipeline] }
[Pipeline] // stage
[Pipeline] End of Pipeline
org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing
디렉토리 삭제dir(카탈로그 이름)에 카탈로그를 지정하고 deleteDir()를 사용합니다.
dir('target') {
deleteDir()
}
퀘스트를 생성하고 싶은artifactsarchiveArtifacts
참조:
// This shows a simple example of how to archive the build output artifacts.
node {
stage "Create build output"
// Make the output directory.
sh "mkdir -p output"
// Write an useful file, which is needed to be archived.
writeFile file: "output/usefulfile.txt", text: "This file is useful, need to archive it."
// Write an useless file, which is not needed to be archived.
writeFile file: "output/uselessfile.md", text: "This file is useless, no need to archive it."
stage "Archive build output"
// Archive the build output artifacts.
archiveArtifacts artifacts: 'output/*.txt', excludes: 'output/*.md'
}
작업 실패오류 메시지
stage('test') {
node {
if(fileExists("./あやしいファイル.txt")) {
error "このファイルはダメ!"
}
}
}
입력 대기 상태로 들어가려면input
stage('write') {
node{
writeFile file:"./hogehoge.txt", text:"hogehoge~", encoding:"UTF-8"
}
}
stage('failure') {
node {
input "心の準備はOK?"
if(fileExists ("./hogehoge.txt")) {
error "このファイルはダメ!"
}
}
}
Pipeline Examples echo
echo 직접 사용 가능
stage ('echo') {
echo "\( 'ω')/ウオオオオオアアアーーーッ!"
}
조개를 운행하고 싶다sh "명령"
sh 'cat nyaan.txt'
Jenkins에 등록된 인증 정보를 사용하고자 합니다.withCredentials 사용
withCredentials(
[[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'test',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]
) {
sh 'echo uname=$USERNAME pwd=$PASSWORD'
}
환경 변수를 빠르게 사용하려면withEnv 사용
참조:
withEnv(['MYTOOL_HOME=/usr/local/mytool']) {
sh '$MYTOOL_HOME/bin/start'
}
Parallel을 실행하고 싶어요.parallel
:
stage('Test') {
parallel linux: {
node('linux') {
checkout scm
try {
unstash 'app'
sh 'make check'
}
finally {
junit '**/target/*.xml'
}
}
},
windows: {
node('windows') {
/* .. snip .. */
}
}
}
나는 잠시 일을 멈추고 싶다sleep 사용
stage ('ムスカ') {
echo "3分間待ってやる"
sleep 180
}
몇 번 불안정한 처리를 시키고 싶어요.retry 사용
retry(10) {
// some block
}
특정한 상태를 기다리다waitUntil을 사용합니다.
화면이 나올 때까지.
waitUntil {
try {
sh 'wget -q http://localhost:8080 -O /dev/null'
return true
} catch (exception) {
return false
}
}
시간 초과 설정timeout 사용
timeout(120){
waitUntil {
try {
sh 'wget -q http://localhost:8080 -O /dev/null'
return true
} catch (exception) {
return false
}
}
}
메일 보내려고요.메일 사용
mail bcc: '[email protected]', body: 'this is mail body', cc: '[email protected]', from: '', replyTo: '', subject: 'this is mail subject', to: '[email protected]'
plugen 사용하고 싶어요.나침반이면 사용할 수 있어요.
참조:
Pipeline Examples
git([
credentialsId: 'gitの認証情報でjenkinsに登録してるid',
url : 'http://hogehoge.git',
branch : 'master'
])
여러 가지 생각이 안 날 때.http:/{호스트 이름]/job/{작업 이름]/pipeline-syntax/
GUI에서 스크립트 생성 선택 가능
참조 링크
Usinga Jenkins file에서 참조
Plugin Compatibility with Pipeline
https://jenkins.io/doc/book/pipeline/syntax/
https://jenkins.io/doc/pipeline/examples/
https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/
http://qiita.com/comefigo/items/fc7aad310235caf89fcd
Reference
이 문제에 관하여(개인 태그), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yyYank/items/e591750c67f3a0bef221텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)