Recommended
PPTX
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
PPTX
Jenkins User Conference 東京 2015
PDF
APIMeetup 20170329_ichimura
PPTX
Myfirst cloudfoundry intro_20161201
PPTX
Jjug CCC 2019 Fall Azure Spring Cloud
PDF
PDF
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
PPTX
Multibranch Pipeline with Docker 入門編
PDF
PDF
Quarkus による超音速な Spring アプリケーション開発
PDF
PDF
PDF
ASP.NETの進化とASP.NET Core Blazorの凄さ
PDF
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
PPTX
AKS (k8s) Hands on Lab Contents
PDF
PPTX
PPTX
PDF
PDF
PPTX
PDF
REST with Spring Boot #jqfk
PPTX
PPTX
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
PPTX
Developer summit continuous deliveryとjenkins
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
More Related Content
PPTX
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
PDF
DOO-003_Jenkins 作者が語る、Docker コンテナによる継続的デリバリのオススメと新機能のご紹介
PPTX
Jenkins User Conference 東京 2015
PDF
APIMeetup 20170329_ichimura
PPTX
Myfirst cloudfoundry intro_20161201
PPTX
Jjug CCC 2019 Fall Azure Spring Cloud
What's hot
PDF
PDF
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
PPTX
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
PPTX
Multibranch Pipeline with Docker 入門編
PDF
PDF
Quarkus による超音速な Spring アプリケーション開発
PDF
PDF
PDF
ASP.NETの進化とASP.NET Core Blazorの凄さ
PDF
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
PPTX
AKS (k8s) Hands on Lab Contents
PDF
PPTX
PPTX
PDF
PDF
PPTX
PDF
REST with Spring Boot #jqfk
PPTX
PPTX
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
Similar to Jenkins 2.0 (日本語)
PPTX
Developer summit continuous deliveryとjenkins
PPTX
Jenkins x Kubernetesが簡単だと思ったら大変だった話
PPTX
Jenkins+Gitによる検証済みマージ(30分版)
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PPTX
PDF
AWS Black Belt Online Seminar AWS上のJenkins活用方法
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PPT
PDF
PPTX
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol2
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PDF
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
PPTX
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
PPTX
PPTX
20140605_じどうかの窓口_CloudBees_Jenkins
PDF
PDF
PDF
Jenkinsで始める継続的デリバリーと実践の道程
PDF
PPTX
More from Kohsuke Kawaguchi
PPTX
PPTX
Large scale automation with jenkins
PPTX
JavaOne 2014: Next Step in Automation: Elastic Build Environment
PPTX
Workflow, container, and beyond
PPTX
Creating a Developer Community
PPTX
PPTX
ODP
PPTX
Jenkins user conference 2011
PPTX
How we made jenkins community
PPTX
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
PPTX
Jenkins user conference 東京
ODP
PPTX
On sharing ideas & sharing code
PPTX
Jenkins State of union 2013
PPTX
PPTX
Jenkins User Conference 2012 San Francisco
PPTX
Jenkins User Conference 2013 Palo Alto: Keynote
PPTX
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
PPTX
Recently uploaded
PDF
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
PDF
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
PDF
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
PDF
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
PDF
N2WS Backup & Recovery と Veeam Backup for AWS
Jenkins 2.0 (日本語) 1. ©2016 CloudBees, Inc. All Rights Reserved 1©2016 CloudBees, Inc. All Rights Reserved
Jenkins 2.0
川口耕介 / CTO / CloudBees, Inc.
kk@kohsuke.org / @kohsukekawa
2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ©2016 CloudBees, Inc. All Rights Reserved 23
2013 2015
ビルド 95% 97%
テスト 86% 90%
デプロイ 48% 58%
運用 15% 24%
Jenkinsの用途は?
24. 25. 26. 27. ©2016 CloudBees, Inc. All Rights Reserved 27
コード→○ GUI→× ステート→×
• 変更を見える化
• 結果でなく意図を記録する
• 冗長さを避ける
• 大規模になっても大丈夫
28. 29. 30. 31. 32. 33. ©2016 CloudBees, Inc. All Rights Reserved 33
Jenkinsfile
node('java8') {
// Checkout our source code
stage 'Checkout'
checkout scm
// Build our project
stage 'Build'
sh 'mvn clean install'
// Run our test target
stage 'Test'
sh './test.sh'
// Archive our artifacts
archive 'target/**/*.jar'
}
34. ©2016 CloudBees, Inc. All Rights Reserved 34
並列処理
parallel(
windows: {
// run test on windows
node('windows') {
checkout scm
sh './test.bat'
}
},
linux: {
// run test on linux
node('linux') {
checkout scm
sh './test.sh'
}
}
)
35. 36. ©2016 CloudBees, Inc. All Rights Reserved 36
人間の作業を含める
def releaseId = input(
message:'リリースノートを更新してリリースIDを入力してください',
parameters: [
[$class: 'TextParameterDefinition', name: 'id']
])
sh "./upload.sh ${releaseId}"
37. 38. 39. ©2016 CloudBees, Inc. All Rights Reserved 39
Organization Folderの利点
• Jenkinsの設定は一度だけ
• Jenkinsfileをコミットするだけ
• ブランチ別のビルド履歴
• プルリクエストの自動ビルドと結果の通知
40. ©2016 CloudBees, Inc. All Rights Reserved 40©2016 CloudBees, Inc. All Rights Reserved
パイプラインのドキュメント
jenkins.io/doc
41. 42. 43. 44. ©2016 CloudBees, Inc. All Rights Reserved 44
Dockerイメージのビルド
def imageName = 'jenkinsciinfra/bind'
node('docker') {
checkout scm
// Compute a unique image tag
def imageTag = "build-${env.BUILD_NUMBER}"
// The `docker` variable introduced by the plugin
stage 'Build'
def whale = docker.build("${imageName}:${imageTag}")
// Publish this image to Docker Hub
stage 'Deploy'
whale.push()
}
45. ©2016 CloudBees, Inc. All Rights Reserved 45
ツールコンテナの活用
node('docker') {
// The `docker` variable introduced by the plugin.
//
// Invoking our Gradle build inside a freshly spun up
// Docker container with JDK8
docker.image('java:8-jdk').inside {
checkout scm
sh './gradlew --info'
archive 'build/libs/**/*.jar'
}
}
46. ©2016 CloudBees, Inc. All Rights Reserved 46
プラグインが豊かにするパイプライン
node {
...
if (env.BRANCH_NAME == 'master') {
sshagent(credentials: ['my-credential-uuid']) {
sh './run-ssh-deploy-script'
}
}
}
47. ©2016 CloudBees, Inc. All Rights Reserved 47
プラグインが豊かにするパイプライン
node {
// Print timestamps for all the wrapped steps
wrap([$class: 'TimestamperBuildWrapper']) {
checkout scm
sh 'mvn clean install'
}
// Archive our artifacts
archive 'target/**/*.jar'
}
github.com/jenkinsci/pipeline-examples
48. ©2016 CloudBees, Inc. All Rights Reserved 48
プラグインが豊かにするパイプライン
node {
stage "Build and test"
timeout(time: 180, unit: 'MINUTES') {
sh "mvn clean install -Dmaven.repo.local=${pwd()}/.repository"
}
stage "Archive test results"
step([$class: 'JUnitResultArchiver',
healthScaleFactor: 20.0,
testResults: '**/target/surefire-reports/*.xml'])
}
49. 50. ©2016 CloudBees, Inc. All Rights Reserved 50
Dockerイメージのビルド x100 ?
def imageName = 'jenkinsciinfra/bind'
node('docker') {
checkout scm
// Compute a unique image tag
def imageTag = "build-${env.BUILD_NUMBER}"
// The `docker` variable introduced by the plugin
stage 'Build'
def whale = docker.build("${imageName}:${imageTag}")
// Publish this image to Docker Hub
stage 'Deploy'
whale.push()
}
51. 52. ©2016 CloudBees, Inc. All Rights Reserved 52
vars/container_build.groovy
def call(imageName) {
node('docker') {
checkout scm
// Compute a unique image tag
def imageTag = "build-${env.BUILD_NUMBER}"
// The `docker` variable introduced by the plugin
stage 'Build'
def whale = docker.build("${imageName}:${imageTag}")
// Publish this image to Docker Hub
stage 'Deploy'
whale.push()
}
}
53. ©2016 CloudBees, Inc. All Rights Reserved 53
まとめ: パイプライン
• 複雑な処理が必要な時にうってつけ
• テキストで記述してバージョン管理
• ジョブが多くてもテンプレート化
• Jenkinsを再起動しても続く
54. 55. 56. 57. 58. 59. ©2016 CloudBees, Inc. All Rights Reserved 59
• お勧めプラグインが最初からついてくる
– 8割の機能を最初から搭載
– ベスト・プラクティスにユーザーを誘導する
Jenkins 2.0 では…
60. 61. 62. 63. 64. ©2016 CloudBees, Inc. All Rights Reserved 64
• セキュリティ・チームの発足
• セキュリティ・チームとリリース・チームの連携
• セキュリティ勧告と事前アナウンスメント
• アプリ内でのユーザーの誘導
今までも一歩一歩改善してきた
65. 66. 67. ©2016 CloudBees, Inc. All Rights Reserved 67
まとめ: Jenkins 2.0
• Pipeline as Code
• UIの改善
• 「要組み立て」からの脱却
• セキュリティ
• CI → CDへ
Editor's Notes #22 And no one is slowing down!
With CloudBees unique perspective of Jenkins usage, the growth is driving our business as well. Expansion in Jenkins adoption is why we’re seeing over 150% growth in our business, which focuses on just a fraction of the global users. #30 Let’s assume you have Jenkins 2.0 running, using the suggested plugins
-> When you click on “New Item”, in addition to the new look, you’ll see “Pipeline” -> #31
-> For this demo we’ll just create a simple Pipeline called “Niagara” -> #32 Inside the usual job configuration you’ll find a PIpeline script text area
In this example, we’ve inserted the Hello World example
-> There’s a lot going on in this screenshot #33 Inside the usual job configuration you’ll find a PIpeline script text area
In this example, we’ve inserted the Hello World example
-> There’s a lot going on in this screenshot #34 This is a very simple Jenkinsfile, just like one you might check into a repository
It defines three stages:
Checkout
Build
Test
This just a basic example, but if you can imagine how this was once configured in the Jenkins Web UI.
Now this can be checked in, with an audit trail and easily evolve alongside the project
-> This is basic, just using built-in steps -> #35 This is a very simple Jenkinsfile, just like one you might check into a repository
It defines three stages:
Checkout
Build
Test
This just a basic example, but if you can imagine how this was once configured in the Jenkins Web UI.
Now this can be checked in, with an audit trail and easily evolve alongside the project
-> This is basic, just using built-in steps -> #36 This is a very simple Jenkinsfile, just like one you might check into a repository
It defines three stages:
Checkout
Build
Test
This just a basic example, but if you can imagine how this was once configured in the Jenkins Web UI.
Now this can be checked in, with an audit trail and easily evolve alongside the project
-> This is basic, just using built-in steps -> #37 This is a very simple Jenkinsfile, just like one you might check into a repository
It defines three stages:
Checkout
Build
Test
This just a basic example, but if you can imagine how this was once configured in the Jenkins Web UI.
Now this can be checked in, with an audit trail and easily evolve alongside the project
-> This is basic, just using built-in steps -> #42 The snippet generator can be used to prorotype snippets of Pipeline #52 and in text / not just calling other jobs, but do stuff within itself