GeekFactory

int128.hatenablog.com

groovy

Gradle Swagger Generator Plugin 2.6.0をリリースした

Gradle Swagger Generator Plugin 2.6.0をリリースしました。OpenAPI YAMLのバリデーション、コード生成、Swagger UI生成を行うためのプラグインです。 github.com New features 複数のOpenAPI YAMLを扱う場合に簡潔に記述できるようになりました。これまで…

Doma 2をGroovyで使用する時に気を付けること

気付いた範囲でまとめてみます。 フォルダ配置 Doma 2はAnnotation ProcessorでDAOの実装クラスを自動生成します。Doma 2のAnnotation ProcessorはJavaのコードにのみ対応しているため、DAOやエンティティはGroovyではなくJavaで書く必要があります。また、G…

Spring BootアプリのテストをSpockで書く

Spring BootアプリケーションのテストをSpockで書く方法を説明します。最近のバージョンを対象にしています。 Spring Boot 1.4 Spock 1.1-rc-3 Groovy 2.4 本稿では以下のテストレベルを対象とします。 コンポーネントテスト(依存コンポーネントをモックに…

Jenkins PipelineでGitリポジトリにpushする

JenkinsのジョブでGitリポジトリにブランチやタグをpushしたい場合があります。Jenkinsfileでどのように実装するか調べてみました。 実装例 お急ぎの方は下記のコードを参考にしてください。 def userRemoteConfig = scm.userRemoteConfigs.head() withCrede…

Using env.BRANCH_NAME on Jenkins Multibranch Pipeline

Jenkins Multibranch Pipelineで、ビルドの契機となったブランチに応じて固有の処理を行いたい場合があります。例えば、masterブランチがpushされた場合のみテスト環境にデプロイするといった使い方が考えられます。Travis CIの TRAVIS_BRANCH 、Circle CIの…

スクリプトコンソール上でSlaveでコマンドを実行する

Jenkinsのスクリプトコンソールを利用すると、Slaveで任意のコマンドを実行できます。具体的には、 RemotingDiagnostics.executeGroovy() メソッドを利用してSlaveでGroovyスクリプトを実行します。 import hudson.util.RemotingDiagnostics // Slaveノード…

Gradle Swagger Codegen Plugin 1.1.0をリリースした

GradleでSwagger Code Generatorを利用するためのプラグインをリリースしました。 github.com バージョン1.1.0では、自動生成の対象を components オプションで選べるようになりました。下記のビルドスクリプトではモデルクラスとAPIクラスを生成しています…

Gradle Swagger Codegen Pluginを書いた

Swaggerのソースコード生成をGradleで利用するためのプラグインを書きました。 github.com 以下のようなビルドスクリプトを実行すると、SwaggerでAPIサーバを自動生成できます。 plugins { id 'org.hidetake.swagger.codegen' version '1.0.0' } repositorie…

Gradle TestKitでプラグインをテストする

GradleプラグインのテストにGradle TestKitを利用すると便利です。 何に使うの? ユニットテストではうまく動いているのに、実際のプロジェクトにプラグインを適用するとうまく動かないことがあります。これはGroovyのバージョンが違うとか、ビルドスクリプ…

Gradle SSH Plugin 2.6.0 released

Gradle SSH Plugin 2.6.0、Groovy SSH 2.6.0をリリースしました。 github.com 2.6.0の変更点 New feature Add executeScript method for script execution (thanks to @matthiasbalke) Add inputStream setting for command or shell (thanks to @matthiasba…

Gradle SSH Plugin 2.5.0 released

Gradle SSH Plugin 2.5.0、Groovy SSH 2.5.0をリリースしました。 github.com 2.4.1〜2.5.0の変更点 New feature Add timeout setting (2.5.0) Bug fixes Fix executeSudo never finish if password is wrong (2.5.0) Fix closing gateway session (2.4.3) U…

Gradle SSH Plugin 2.4.0をリリースした

Gradle SSH Plugin 2.4.0、Groovy SSH 2.4.0をリリースしました。 github.com 2.4.0の変更点 New features: Host key checking for gateway access Put files filtered by given closure Get files filtered by given closure Add ssh.runtime object in CLI…

TestKitによるGradleプロジェクトのテスト

最近のGradleで導入されているTestKitを使ってみたのでメモします。 TestKitでできること TestKitを利用すると、Gradleプロジェクトに対するテストを実行できます。例えば、何かの設定ファイルを自動生成するタスクをGradleで定義している場合に、そのタスク…

Gradle SSH Plugin 2.3.0をリリースした

Gradle SSH Plugin 2.3.0、Groovy SSH 2.3.0をリリースしました。 github.com 2.3.0の変更点 リモートコマンドを実行する時にコマンドラインを簡単にエスケープする構文を追加しました。これまでは自分でエスケープする(シングルクォートで囲む、もしくはバ…

Gradle SSH Plugin 2.2.0をリリースした

Gradle SSH Plugin/Groovy SSH 2.2.0をリリースしました。 2.2.0の変更点 authentications でユーザ認証方式を指定できるようになりました。通常の使い方(パスワード認証、公開鍵認証)ではユーザ認証方式を指定する必要はありませんが、Kerberos認証などの…

Gradle SSH Plugin 2.1.1をリリースした

Gradle SSH Plugin/Groovy SSH 2.11をリリースしました。 2.1.1の変更点 SCP GET/PUTの性能を改善しました。 github.com 2.1.0でSCPサポートを追加しましたが、非効率な実装が残っていたため、2.1.1で性能を改善しました。 Test Item scp vs sftp (2.1.0) sc…

Gradle SSH Plugin 2.1.0をリリースした

Gradle SSH Plugin 2.1.0、Groovy SSH 2.1.0をリリースしました。 github.com github.com 2.1.0の変更点 SCPによるファイル転送をサポートしました。SFTPはJSchに組み込まれている機能を利用しているので簡単に実装できましたが、SCPはコマンドの標準入出力…

Gradle SSH Plugin/Groovy SSH 2.0.0をリリースした

Gradle SSH Plugin 2.0.0、Groovy SSH 2.0.0をリリースしました。 github.com github.com 2.0.0の変更点 executeSudo メソッドでsudoコマンドに与えるパスワードをデフォルト(SSH接続時のパスワード)から変更できるようにしました。また、sudoコマンドのパ…

Gradle SSH Plugin 1.5.1をリリースした

Gradle SSH Plugin 1.5.1、Groovy SSH 1.5.1をリリースしました。 github.com github.com 1.5.1の変更点 SFTPでファイルやディレクトリを削除する remove メソッドを提供しているのですが、ファイルやディレクトリが存在しない場合に例外が発生しないように…

Gradle SSH Plugin 1.5.0をリリースした

Gradle SSH Plugin 1.5.0、Groovy SSH 1.5.0をリリースしました。 github.com github.com 1.5.0の変更点 Gradle SSH Pluginではホストにロールを関連付けることができます。これまで複数ロールのORを取るメソッド role() を提供していましたが、1.5.0からAND…

Groovy 2.3および2.4におけるTraitの差異

Groovy SSHの開発で気づいたのですが、Groovy 2.3と2.4でTraitの挙動が微妙に異なるようです。 2.3から2.4に上げたところ、Traitのメソッドに書いたクロージャをdelegate指定で実行してもdelegateのプロパティやメソッドが解決できない問題が発生しました。…

Gradle SSH Plugin 1.4.0をリリースした

Gradle SSH Plugin 1.4.0、Groovy SSH 1.4.0をリリースしました。 github.com github.com 1.4.0の変更点 ECDSA Host Keyに対応しました。正確には、以下の場合にHost Key Checkingが失敗する事象を修正しました。 known_hosts にECDSA鍵が含まれる。 SSHサー…

Gradle SSH Plugin 1.1.5をリリースした

Gradle SSH Plugin 1.1.5、Groovy SSH 1.1.9をリリースしました。 github.com サーバでSFTPが無効に設定されている場合にスクリプトがハングアップしてしまうバグを修正しました。約3ヶ月ぶりにリリースしようとしたらテストが通らなくて焦りました。Travis …

Gradle SSH PluginやGroovy SSHはどのようにテストしているか

G*Advent Calendar 2015の18日目です。 qiita.com 昨日は某社の方をゲストに迎えて闇の話をしていたためAdvent Calendarの公開が遅れました。大変申し訳ございません。 本記事では、Gradle SSH PluginやGroovy SSHをどのようにテストしているか説明します。G…

Gradle SSH Plugin 1.1.4, Groovy SSH 1.1.8をリリースした

Gradle SSH Plugin 1.1.4とGroovy SSH 1.1.8をリリースしました。リトライ機構にバグがあったので修正しました(Packet corrupt errors after upgrading from 1.1.5 to 1.1.7 · Issue #77 · int128/groovy-ssh · GitHub)。バグレポートをいただけるのは嬉し…

SpockのPollingConditionsがE2Eテストで便利

Spockの PollingConditions が便利だったのでメモです。 PollingConditions は条件を満たすかタイムアウトになるまで評価を繰り返してくれます。E2Eテストで別スレッドでサーバを起動してサーバがreadyになるまで待つといった場合に便利です。 import spock.…

Gradle Updateをカイゼンした

Gradle Updateを公開します - GeekFactoryint128.hatenablog.com Gradle Wrapperを自動更新してくれるサービス Gradle Update を公開してから積み残しがいくつかあったので改善しました。 Done README 英語圏の人にも使ってもらうため、使い方やスクリーンシ…

Gradle Updateを公開します

Gradle Wrapperを自動更新してくれるサービス Gradle Update を公開します。Gradle Wrapperのようなビルドシステムは一度設定するとバージョンを上げるタイミングがあまりないのですが、新しいバージョンを使うとパフォーマンスが改善されたりバグを踏まずに…

Jenkins Workflow PluginのDSLを拡張する試み

Jenkins Workflow PluginのDSLを拡張する仕組みを調べたのでメモします. Workflow basic stepsを参考にする Workflow Pluginはbasic stepsという基礎的な命令セットと一緒にリリースされています.basic stepsには下記が含まれます. ArtifactArchiverStep …

Gradle SSH Plugin 1.1.1をリリースした

Gradle SSH Plugin 1.1.1をリリースしました. GradleからリモートサーバにSSHしてコマンド実行やファイル転送を行うことができるプラグインです.Groovy DSLを活用しているので,簡単にSSH処理を記述できます. int128/gradle-ssh-plugin New Features 1.1…