Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。webアプリケーションエンジニアお久しぶりでございます。scalaでバックエンドを開発しているaxtstar(@axtstart)でございます。Oceanの話をしてみます。Jenkinsあれ弊社ではCI・CDツールとしてJenkinsを使用しています。最近までは、GUIによる設定を行っていました。Oceanを使いだしているので、その紹介と活用方法を書いてみたいと思います。Pluginと呼ばれていた、Jenkins内でGroovyによって記述できるワークフロープラグインです。今までGUIで設定していた部分をコードで記述することができます。SCM内にJenkinsfileと呼ばれる設定ファイルを保存することが可能であり、レビューが(通常のJOBと比較して)容易です。ファイルであるためコピーが可能で、GUIを用いた連携では全くできないような処理も記述できます。World'}gitから取得する場合Jenkinsfileと呼ばれるファイルに処理を記述し、例えばgithubで管理できます。}}こちらに置いておきました。↓上記pipeline実行の様子stageと記載したブロックごとの状況と履歴が一目瞭然のビューになっています。通常のJobと異なり、PipelineはJenkinsが落ちても処理を継続できるように設計されています。プラグインで置き換えることで、ひとまとめの処理として閲覧できるようになりました。Jenkinsの設定が比較的多かったプロジェクトなのでかなり効果を発揮しています。ハマったところ以下の2点は少しハマりました。ApprovalRejectedAccessExceptionという例外が発生して落ちる。Approvalで許可する必要がある。シリアル化エラーNotSerializableExceptionという例外が発生して落ちる。落ちる箇所をメソッドにして「@NonCPS」アノテーションを与える必要がある。上記ともこちらに説明があります。見ると、それまであまり変更の無かった、UX部分に手を加えることで、昨今のDevOps、ChatOpsといった要請にこたえていくという方向性のようです。必要なプラグインを合わせてインストールしてくれます。OceanのUXに行けます。元々のViewも無くなるわけではありません。CIなどが提供している画面に似た画面が表示されます。このよう感じで今風の画面が出てきて、個々のビルド結果とその詳細が見れます。Oceanの場合はそういった部分もパラレルである様に表示されています。該当部分のエラーにも素早く移動することができます。いかがだったでしょうか?最後に今年最後の投稿になってしまいました。寒い時節が続きますが、皆様もお体にお気をつけてよいお年をお迎えください。year!*1:まだまだ発展途上で全プラグインがPipeline上で動くとかそういうレベルではないようです。JenkinsTweet関連記事2019-03-13働きたくないのでコードを自動生成してみたよこんにちは、開発部のNishikawaです。