Suche senden
Hochladen
jenkinsで遊ぶ
•
46 gefällt mir
•
17,393 views
(^-^) togakushi
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 30
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
go generate 完全入門
go generate 完全入門
yaegashi
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
Empfohlen
go generate 完全入門
go generate 完全入門
yaegashi
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
Jenkins と groovy
Jenkins と groovy
Kohsuke Kawaguchi
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
Jenkins with Docker
Jenkins with Docker
Yahoo!デベロッパーネットワーク
30分で分かる!OSの作り方
30分で分かる!OSの作り方
uchan_nos
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Docker超入門
Docker超入門
VirtualTech Japan Inc.
大規模負荷試験時にやったこと
大規模負荷試験時にやったこと
まべ☆てっく運営
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
async/await のしくみ
async/await のしくみ
信之 岩永
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
Takahiro YAMADA
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Takayuki Okazaki
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Masanori Satoh
Weitere ähnliche Inhalte
Was ist angesagt?
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Docker超入門
Docker超入門
VirtualTech Japan Inc.
大規模負荷試験時にやったこと
大規模負荷試験時にやったこと
まべ☆てっく運営
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
増田 亨
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
async/await のしくみ
async/await のしくみ
信之 岩永
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
Takahiro YAMADA
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
Google Cloud Platform - Japan
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
Was ist angesagt?
(20)
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Docker超入門
Docker超入門
大規模負荷試験時にやったこと
大規模負荷試験時にやったこと
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
async/await のしくみ
async/await のしくみ
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
分散システムについて語らせてくれ
分散システムについて語らせてくれ
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Andere mochten auch
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Takayuki Okazaki
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
Masanori Satoh
第8回大阪jenkins勉強会LT Jenkinsでやってみてよかったこと・やめておいたほうが良かったこと
第8回大阪jenkins勉強会LT Jenkinsでやってみてよかったこと・やめておいたほうが良かったこと
kunst1080
邪道Jenkins
邪道Jenkins
hazisarashi
Jenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみた
kakakikikeke
自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみた
Kazuhito Miura
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
Kazuhito Miura
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
Hiroko Tamagawa
第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CI
Hiroshi Maekawa
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
Kazuhito Miura
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
(株)TAM
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Jenkins tips 20161014
Jenkins tips 20161014
Hideaki Ishijima
Maven tips
Maven tips
Hideaki Ishijima
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
Kazuhito Miura
SCM, CI and Maven Repo
SCM, CI and Maven Repo
Hideaki Ishijima
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
Kohsuke Kawaguchi
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
Akabane Hiroyuki
FuelPHPをさわってみて
FuelPHPをさわってみて
Sotaro Omura
Andere mochten auch
(20)
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Jenkinsではじめる継続的インテグレーション
Jenkinsではじめる継続的インテグレーション
第8回大阪jenkins勉強会LT Jenkinsでやってみてよかったこと・やめておいたほうが良かったこと
第8回大阪jenkins勉強会LT Jenkinsでやってみてよかったこと・やめておいたほうが良かったこと
邪道Jenkins
邪道Jenkins
Jenkinsを導入する本当の理由を考えてみた
Jenkinsを導入する本当の理由を考えてみた
自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみた
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
JenkinsとDockerって何が良いの? 〜言うてるオレもわからんわ〜 #jenkinsstudy
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CI
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
「認定Jenkinsエンジニア(Certified Jenkins Engineer:CJE)試験」について調べてみた #jenkinsstudy
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
Jenkins 再入門
Jenkins 再入門
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins tips 20161014
Jenkins tips 20161014
Maven tips
Maven tips
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
仁斤曰く 「”手間業”蔓延り易く、 “楽”成り難し」
SCM, CI and Maven Repo
SCM, CI and Maven Repo
Jenkins User Conference 東京 2015
Jenkins User Conference 東京 2015
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
不安定な環境の中でのバッチ処理~JobQueueシステムQudoを使った事例~
FuelPHPをさわってみて
FuelPHPをさわってみて
Ähnlich wie jenkinsで遊ぶ
MoteMote Compiler Plugin
MoteMote Compiler Plugin
yoshiaki iwanaga
About Jobs
About Jobs
Shinichi Kozake
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
Takafumi Ikeda
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
Hiro Yoshioka
意識の低い自動化
意識の低い自動化
greenasparagus
Openresty
Openresty
ogawatti
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
Keisuke Umeno
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
Toru Tamaki
CLRH_120414_WFTDD
CLRH_120414_WFTDD
Tomoyuki Obi
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
テスティングフレームワークに入門してみた - Swift編
テスティングフレームワークに入門してみた - Swift編
Hisakuni Fujimoto
明日から使える気になるGo言語による並行処理
明日から使える気になるGo言語による並行処理
Yuto Matsukubo
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
ina job
Clrh 110827 wfho
Clrh 110827 wfho
Tomoyuki Obi
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
shigeya
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
Ähnlich wie jenkinsで遊ぶ
(20)
MoteMote Compiler Plugin
MoteMote Compiler Plugin
About Jobs
About Jobs
Jenkins+Play!で気軽にCI
Jenkins+Play!で気軽にCI
Programming camp 2010 debug hacks
Programming camp 2010 debug hacks
意識の低い自動化
意識の低い自動化
Openresty
Openresty
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
CLRH_120414_WFTDD
CLRH_120414_WFTDD
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
テスティングフレームワークに入門してみた - Swift編
テスティングフレームワークに入門してみた - Swift編
明日から使える気になるGo言語による並行処理
明日から使える気になるGo言語による並行処理
SVNのすすめ&Redmineでプロジェクト管理
SVNのすすめ&Redmineでプロジェクト管理
Clrh 110827 wfho
Clrh 110827 wfho
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Mehr von (^-^) togakushi
ささみ麻雀部の紹介
ささみ麻雀部の紹介
(^-^) togakushi
ファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみる
(^-^) togakushi
手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0
(^-^) togakushi
仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp
(^-^) togakushi
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
(^-^) togakushi
Janog33.5
Janog33.5
(^-^) togakushi
現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方
(^-^) togakushi
sshdのお話
sshdのお話
(^-^) togakushi
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
(^-^) togakushi
KVM+cgroup
KVM+cgroup
(^-^) togakushi
SSH力をつかおう
SSH力をつかおう
(^-^) togakushi
Pakena #9
Pakena #9
(^-^) togakushi
SSH力をつけよう
SSH力をつけよう
(^-^) togakushi
Sfstudy #2
Sfstudy #2
(^-^) togakushi
ひとりsphinx
ひとりsphinx
(^-^) togakushi
Mehr von (^-^) togakushi
(15)
ささみ麻雀部の紹介
ささみ麻雀部の紹介
ファイナル・ファンタジー2のデータを解析してみる
ファイナル・ファンタジー2のデータを解析してみる
手順書の話 Ver.0.3.0
手順書の話 Ver.0.3.0
仕事の捉え方の話 #ssmjp
仕事の捉え方の話 #ssmjp
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
Janog33.5
Janog33.5
現場で役に立たないsudoの使い方
現場で役に立たないsudoの使い方
sshdのお話
sshdのお話
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
KVM+cgroup
KVM+cgroup
SSH力をつかおう
SSH力をつかおう
Pakena #9
Pakena #9
SSH力をつけよう
SSH力をつけよう
Sfstudy #2
Sfstudy #2
ひとりsphinx
ひとりsphinx
jenkinsで遊ぶ
1.
Jenkinsで遊ぶ シェルスクリプトって便利だね
2.
jenkinsとは ► 継続的インテグレーションをやる開発のツール
自動ビルド、自動テスト
3.
cronの変わりに使う ► cronの可視化をしてみる ► ビルドを行う部分でシェルスクリプトが実行でき
る ► 起動させるための時間指定の書式がcronと まったく一緒
4.
なにがうれしいか ► WebUIを持っている ► 実行にかかった時間をグラフ化してくれる ►
ジョブ終了時の動作を指定できる メール通知 別のジョブの呼び出し 正常終了時と異常終了時で動作を変えれる ► リトライやタイムアウトを設定できる ► 実行時のログがすべて残せる(過去に遡って見れる)
5.
グラフ化 エラーになったところは赤くなる
増えていくのがわかる
6.
実行ログが残せる /dev/nullに捨てるなんてとんでもない!!
7.
なにがざんねんか ► Javaで動くのでJDKのインストール必須 ► 頻繁にアップデートされる
放置すると残念なことに ► 起動は時間ぴったりに行われない 起動が数秒でも遅れたら致命的なものには使えない ► 単語の混乱 ジョブ?プロジェクト?(イコールっぽい) 目的が違う使い方→ビルド? わりとどうでもいいことばかりなのでぜひ使うべし
8.
はじめの一歩 ► インストール
Javaが入っていればOK RPMが提供されている yumリポジトリがある ► テストジョブ作成 はろーわーるど的ななにか スリースタイルのジョブ
9.
ジョブの構成 ジョブの定義
ビルドの世代管理/リトライ回数/有効・無効/他のジョブ が動いてるときの動作/タイムアウトなど いつ実行するか ビルド・トリガ 定期/ファイル・ディレクトリが更新されたら・別のジョブ から/リポジトリが更新されたら/メールボックス/IRC ビルド環境の整備 ワークスペースの削除/事前に実行するコマンド/ログ の出力形式 処理内容(シェルスクリプト/Pythonなどなど) ビルド 何段にでも並べられる メール通知/別のジョブの呼び出し/成果物の保存 ビルド後の処理 プラグインで拡張
10.
テキストエリアにブチ込む この中にシェルスクリプトをベタ書き
11.
実行されるシェルスクリプト ► 一度/tmpに置かれる ► Jenkinsユーザが実行 ►
set –x付き(簡易デバッグモードもどき) ► set –e付き(何かのコマンドが非ゼロで終了した ら即中断) ► ワークスペース(作業場所)が決められている
12.
set -x ► xtrace
実行するコマンドや変数を展開して表示する set +xで無効にできる
13.
set -e ►
シェルスクリプト内で使用しているコマンドのステータスコードが 非ゼロ(異常終了)した場合に即座にスクリプトをexitするオプ ション(例外あり) ログに特定文字列がない場合が正常としたい →チェックのために「grep word …」すると… →1件もマッチしないとステータスコードが1 いつでもset +eで効果を打ち消すことができる ► 例外の例 例外その1:「! コマンド」のようにステータスコードを反転させてる場合 例外その2:「コマンド1 | コマンド2 | コマンド3」のように連続したパイプ 処理の中の最後のコマンド以外 例外その3:ifやwhileなどの条件分岐で使われる式
14.
grepの替わりのawkとsed ► awk/sedのパターンマッチで処理する ► grepのような細かい指定(-wや-iなど)は出来ないが、
正規表現が使えるのでegrepと同じことが出来る grep awk sed grep word file awk ‘/word/’ file sed –n ‘/word/p’ file grep –v word file awk ‘!/word/’ file --- grep –n word file awk ‘/word/{print sed –n ‘/word/=‘ file (行番号以外も出力される) NRF}’ file
15.
シェルスクリプトをより安全に使う ► Jenkinsとは関係ない世界ですが… ► デバッグはしっかりしましょう
特に異常系 ファイルを指定して何かする→そのファイルがな かったらどうなりますか? 変数に代入する値を何かから生成している→変数 が空欄になったら何が起こりますか? 前処理でエラーが発生してるのに後続の処理が実 行されたらどうなりますか?
16.
(寄り道)変数のパラメータ展開 ► ${変数名:-単語}
変数が未定義、もしくは空の場合は単語を使う 変数は未定義のまま ► ${変数名:=単語} 変数が未定義、もしくは空の場合は単語を代入してから使う ► ${変数名:?単語} 変数が未定義、もしくは空の場合は単語の内容が表示され エラーを返す 「${変数:?}」だけでもok set –uで変数(@と*以外)が未定義の場合は常にエラー
17.
(寄り道) declare/typeset ► 変数に属性を付ける
typeset –r hoge=‘fuga’ オプション 効果 -i すべて数値として扱う 代入時に算術式評価が行われる 文字列はゼロ -l 小文字に変換してから代入 -u 大文字に変換してから代入 -r 読み取り専用にする これ以降の変数の代入はエラー(unsetもできな い)
18.
次のステップ ► プラグインの導入 ► ジョブの連携
19.
おすすめプラグイン(1) ► Dependency
Graph Viewer Plugin ジョブの繋がりをGraphvizで書いてくれる ► Dis Usage Plugin ワークスペースの消費量をグラフ化 ► Timestamper ジョブの実行ログの各行に実行時間を追加して出 力
20.
おすすめプラグイン(2) ► Build-timeout
Plugin 指定時間内で終了しなかったジョブをエラーにする ► Jenkins Workspace Cleanup Plugin ジョブの実行時/終了時にワークスペースを削除す る ► BuildResultTriggerやjoinなど ジョブのエラー時に他のジョブを呼び出す 複数のジョブがすべて正常終了しないと次を実行し ないようにすることもできる
21.
ジョブの連携 ► エラーで処理が中断された場合、再処理を途 中から行える(好きなところからやり直せる)
1. 各サーバからログを集める 2. ログを解凍する 3. 集計する など ► 分割されてグラフ描写されるので改善に繋げや すい
22.
ビルドスクリプトの分割 ► スクリプトを書くテキストフォームはいくつでも追
加できる ► ドラッグ&ドロップで並べ替えれる ► ワークスペースは共有する
23.
どんな感じで使ってるの?
24.
定例作業の省エネ化 ► ○時になったらサーバにログインしてコマンドを
叩く暫定運用 ► すでにサービスインしてるサーバなのでcronに 何か仕掛けるとかすると怒られる Jenkinsで定期的にsshを呼び出してコマンド実行 ログは残っているので後でじっくり見れる 過去に遡って見れる サボってもバレない
25.
ログにエラーが出てないかときどき見て ► これまた暫定運用+サーバに何か仕掛けられ ない
ビルド1:sshで接続してログcatで開いてローカル ファイルにリダイレクト ビルド2:過去のエラーなどフィルタする文字列をヒ アドキュメントで別ファイルに出力 ビルド3:grep –vf フィルタするファイル ログ | grep 検索文字列 後処理:出力があったらエラーにしてメールを飛ば す
26.
定期的にファイルコピー ► rsyncやってるだけ
27.
ログ集計 ► サーバからログファイルを集めて ► ワークスペース内に全部置いて ►
アクセス解析
28.
などなど。 ► 定期的に「なんかやって」の暫定運用を助けて
くれる相棒としてjenkinsおっさんが活躍中 ► 実際にはリポジトリのShpinxドキュメントを定期 的にビルドしたり、 ► リポジトリにコミットしたHPのコンテンツをWeb サーバにデプロイしたり、 ► もう少しちゃんと働いてくれてます
29.
無理矢理まとめ ► 自動運転するシェルスクリプトのエラーは安全
に停止するように作ろう ► いつまでやるかわからない暫定運用を人手で やるのはしんどい ► 見えるようにしておけば改善しやすい
30.
おしまい
Jetzt herunterladen