GitLab から ChatWork へ 通知を飛ばす

結論

ChatWork で ChatOps をするのはつらい。

GitLab から ChatWork へ通知を飛ばす

たとえば GitLab への プッシュ をトリガにして ChatWork へ通知(ポスト)したいとします。現在のところ GitLab 自体に ChatWork へ飛ばす仕組みは組み込まれていません。したがって、Webhook を飛ばすしかありません。しかし、Webhook をどう受けてどう流すか。すべての人がぶち当たる問題です。

続きを読む

「技術書典4」にサークル参加をしました

「技術書典4」

2018/04/22(日)に開催された「技術書典4」にサークルとして参加しました。

私のサークルのページは以下のとおりです。

感想

4回目の開催であり*1、前回の盛り上がりと今回の開催までの「ざわざわ感」を見ていたところ、今回は結構な話題になって来場者の方も多いのではないかと思っていました。そして、それはその通り、いや予想以上になりました。

*1:厳密には違いますが

続きを読む

Windows の SourceTree を完全にアンインストールする方法

結論

C:\Users\[username]\AppData\Local\Atlassian 配下の SourceTree という名前が含まれているフォルダを全削除しましょう。

当該フォルダは不可視になっているかもしれないので、適当なエクスプローラ(フォルダ一覧)のメニューから「表示」→「オプション」→「 表示タブ」→「隠しファイル、隠しフォルダー、または隠しドライブを表示する」を選択して見られるようにしましょう。

参考

Jenkinsfile で daemon系(バックグラウンド動作系)の処理が継続できない場合

状況

Jenkinsfile 内のシェルコマンドで、デーモン的なコマンド(バックグラウンドで動作させるようなコマンド)を実行しようとしても実行されない*1

結論

JENKINS_NODE_COOKIE=dontKillMe を daemon コマンドの前に付与する。以下、unicorn-D オプションで起動する場合を例にします。

node {
    stage('deploy') {
        sh('JENKINS_NODE_COOKIE=dontKillMe bundle exec unicorn -D')
    }
}

補足

検索すると引っかかることが多いのですが、以下のように BUILD_ID=dontKillMe を付与しても動作しません。node { ... } の記述法の場合にはこのような書き方では動作しないようです*2

node {
    stage('deploy') {
        sh('BUILD_ID=dontKillMe bundle exec unicorn -D')
    }
}

さらに補足

node { ... } の記述法で……」という話が出ましたのですこし付記します。現在では node { ... } ではなく pipeline { ... } を用いることが推奨されています*3。詳しくは以下のページをご覧ください。

参考(感謝!)

*1:実行はされているが Jenkinsfile の処理を抜けたら終了してしまう

*2:確証が持てるほどまで深く確認していません……すいません

*3:scripted pipeline ではなく declarative pipeline を推奨

Powered by はてなブログ