生産性向上ブログ

継続的な生産性向上を目指すエンジニアのためのブログ

CircleCI 2.1 の新機能で yaml の記述を DRY にする方法

github.com まだプレビューですが CircleCI の新機能が 2.1 として使えるようになっているという話と、2.1 の新機能で yaml の設定を DRY にする方法を紹介します。

Jenkins のシステム設定を yaml で書けるようにする Configuration as Code プラグイン

これまで GUI から行っていた Jenkins のシステム設定を yaml で設定できる Configuration as Code プラグインについて解説します。 github.com これまでの Jenkins as Code 〇〇 as code は近年いろいろなところで見かけますが、設定をコード化するとソフト…

Jenkins で事前にプラグインがインストールされた Docker イメージを用意する方法

以前に Jenkins を公式の Docker イメージから構築する方法について書きましたが、今回は公式の Docker イメージに事前にプラグインをインストールした Docker イメージを作成する方法について書きます。 ちなみに、公式の説明は Docker イメージの GitHub …

CircleCI 2.0 で Workflow の triggers を使って定期実行ジョブ(Nightly Builds)を実現する

過去に、『CircleCI 2.0 で定期実行ジョブ(Nightly Builds)を実現する』という記事を書いたのですが、現在の CircleCI 2.0 ではもっと楽に cron 的な定期実行ジョブを記述できるようになっているので補足記事を書きます。 前の記事を書いた時点では Circle…

2017 年読んでよかった本 8 冊

2017 年に読んでよかった書籍をまとめておきます。 去年も書いてるので興味ある人はそちらもどうぞ。 www.kaizenprogrammer.com

Selenium ユーザー視点で Cypress を試したらめちゃくちゃ便利そうでした

この記事は、Selenium/Appium Advent Calendar 2017 の 23 日目です。 この記事では、ブラウザテストツールの Cypress の紹介を Selenium ユーザーである自分の視点から書きます。 Cypress とは www.cypress.io Cypress は、テストのセットアップ、作成、実…

CircleCI 2.0 で Docker イメージをビルドして Docker Hub に push する

CircleCI 2.0 の小ネタです。 TL; DR リポジトリのルートに Dockerfile がある前提です。 CircleCI 2.0 で対象のリポジトリをプロジェクトとして有効にする CircleCI 2.0 上で環境変数に Docker Hub のユーザー名を DOCKER_USER に、パスワードを DOCKER_PAS…

CircleCI 2.0 で定期実行ジョブ(Nightly Builds)を実現する

2018/02/11 追記 この記事に書かれている内容は古いので、補足記事を書きました。この記事の方法を使うメリットは現時点でほぼないはずなので、以下の記事を参照してください。 www.kaizenprogrammer.com

Jenkins Pipeline の when + branch は通常のパイプラインジョブでは使えない

Jenkins Pipeline についての小ネタメモです。 まず、when + branch の条件について簡単に説明しますと、ビルドが特定のブランチに対して実行されるときだけ処理を実行するように書ける文法です。 pipeline { agent any stages { stage('Example Build') { s…

Jenkins Pipeline でパラメータ(環境変数)でビルドするブランチを指定する

小ネタメモです。 Jenkins のジョブを作るときに、パラメータを受け取ってその値を環境変数としてブランチに指定することがあると思います。 ↑こんな感じですね。 しかし、この方法を Jenkins Pipeline で行うとエラーが出ます。 hudson.plugins.git.GitExce…

Jenkins の Multibranch Pipeline で Jenkinsfile のパスを指定できるようになった件

Pipeline Multibranch Plugin の 2.15 で、表題の通り Jenkinsfile のパスを指定できるようになったのでメモです。 [JENKINS-34561] Allow to detect different Jenkinsfile filenames - Jenkins JIRA これまではリポジトリ直下の Jenkinsfile で決め打ちだ…

『カエルを食べてしまえ! 新版』読了

カエルを食べてしまえ! 新版作者: ブライアン・トレーシー,門田美鈴出版社/メーカー: ダイヤモンド社発売日: 2015/08/28メディア: 単行本この商品を含むブログを見る 『カエルを食べてしまえ! 新版』を読み終えたので、簡単に感想とかのまとめです。 ちょっ…

『レガシーソフトウェア改善ガイド』読了

レガシーソフトウェア改善ガイド作者: クリス・バーチャル出版社/メーカー: 翔泳社発売日: 2016/11/14メディア: Kindle版この商品を含むブログ (1件) を見る 『レガシーソフトウェア改善ガイド』を読み終えたので、簡単に感想とかまとめておきます。 タイト…

Jenkins 2.0 (5): Jenkinsfileをコマンドラインからlintする

Jenkins 2.0のDeclarative Pipelineには、Jenkinsfileをlintするための仕組みが用意されています。 curlとssh プラグインのWikiには、sshとcurlそれぞれでJenkinsをlintするための方法が紹介されています。以下は引用です。 # ssh方式 ssh -p [sshd port on …

Jenkins 2.0 (4): GitHub Organization Folder

Jenkins 2.0について書く記事の4回目です。今回は、GitHub連携について書きます。 GitHub連携でやりたいこと 昨今の一般的なCIサービスでは、GitHub連携に求められることは以下になります。 リポジトリにpushしたら自動でビルド開始される ビルド結果をcommi…

Jenkins 2.0 (3): Scripted Pipeline と Declarative Pipeline

Jenkins 2.0について書く記事の3回目です。今回は、前回書いたJenkins Pipelineを構成するDSLについて書きます。 フリースタイルプロジェクトのジョブ設定 1.x時代から存在したフリースタイルプロジェクトでは、Web上のUIを通してジョブを設定しました。この…

Jenkins 2.0 (2): Jenkins Pipeline

Jenkins 2.0の最新情報について書く記事の第2回目です。今回は、2.0の中心となるPipelineについて書きます。

Jenkins 2.0 (1): Dockerで環境構築

Jenkins 2.0 2016/04/26にJenkins 2.0がリリースされてから1年近くが経ちました。 リリース当初は、正直2.0のメリットをほとんど感じていませんでした。というのも、2.0の目玉であったPipeline Pluginは実は1.x系でもその時点の2.0とほぼ同等の機能が使えた…

VersionEyeの情報をSlackに投稿するnpmパッケージを作成しました

概要 VersionEyeの情報をSlackに投稿するnpmパッケージを作成したので、それについて解説します。

今年読んでよかった本4冊【2016年版】

2016年に読んでよかった書籍をまとめておきます。 Work Rules! ワーク・ルールズ!―君の生き方とリーダーシップを変える作者: ラズロ・ボック,鬼澤 忍,矢羽野 薫出版社/メーカー: 東洋経済新報社発売日: 2015/07/31メディア: 単行本この商品を含むブログ (8…

なぜSeleniumテストは不安定なのかとその対策

この記事は、Selenium/Appium Advent Calendar 2016の18日目の記事です。17日目は、xshsakuさんのAppiumとSTFを使ったAndroid実機テストでした。 はじめに Seleniumテストを運用する上で安定性は大事です。テストが不具合以外の原因で頻繁に失敗してしまうと…

JavaScript in Selenium Test (3): selenium-webdriverをCircleCIで動かす

概要 前回: JavaScript in Selenium Test (2): selenium-webdriverでhookとページオブジェクト 今回は、前回までに実装したテストをCircleCIに乗せてみようと思います。 CircleCI これまでのテストが入ったリポジトリをCircleCIで有効化してみました。circle…

JavaScript in Selenium Test (2): selenium-webdriverでhookとページオブジェクト

概要 前回: JavaScript in Selenium Test (1): selenium-webdriver & Mocha & power-assert 今回は、selenium-webdriverで実際のメンテナンスを意識したコードを書いてみます。 コードをメンテナンスしやすくするために重要なのは、なんらかの変更が発生した…

JavaScript in Selenium Test (1): selenium-webdriver & Mocha & power-assert

概要 JavaScriptを使ったSeleniumテストに興味が出てきたので、調査したことを何回かに分けて記事にまとめていきます。 今回は、selenium-webdriver、Mocha、power-assertを使ってSeleniumテストに入門してみます。 環境 この記事は、以下の環境で実行してい…

1Kの部屋でエンジニアの開発環境を整えてみた話

はじまり 一人暮らしを始めてから長らく、自宅に本格的な開発環境というものは整えてこなかった。開発環境というのは、主に机、椅子、モニタといったものである。 理由は簡単で、部屋が狭いから。1Kの部屋にはすでにベッド、テレビ、ソファーやカラーボック…

System of Record と System of Engagement、そしてバイモーダルITについての考察

概要 speakerdeck.com naoyaさんによる『System of Record と System of Engagement』というスライドをきっかけにバイモーダルITについて調べてみたらおもしろかったので、考察してみます。

『Java Casual #2』参加レポート

概要 java-casual.connpass.com LINE社で開催された『Java Casual #2』に参加してきたので、簡単に参加レポート。

sensuのログに "No such file or directory @ rb_sysopen - /tmp/sensu_server_loaded_files (Errno::ENOENT)" と出力されてhandlerが実行されない問題の対処法

環境 OS: Ubuntu 16.04 sensu: 0.26.5

『【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜』参加レポート

概要 plaidtech.connpass.com 『【ペパボ×プレイド】Tech Meetup 〜自動テスト・CI編〜』に参加してきたので、簡単にレポートを書く。スライド未公開のものについては、公開されたら更新する。

Jenkins 2.19.1リリース

jenkins.io Jenkinsの最新LTSである2.19.1がリリースされたので、それについてまとめる。