Windows サーバーで サービスから Jenkins を起動しようとしたときに起動しなかったときの対応

状況

  • http://jenkins/restart とかを何回か実行した
  • サービスでステータス確認したら 停止 になっている
  • サービスから開始をクリックしてもステータスは一瞬 実行中 になるがすぐに 停止 になる

対応

  • jenkins.err.log を確認
  • エラーが出ている
警告: FAILED ServerConnector@8c1c9b{HTTP/1.1}{0.0.0.0:8090}: java.net.BindException: Address already in use: bind

java.net.BindException: Address already in use: bind

    at sun.nio.ch.Net.bind0(Native Method)

    at sun.nio.ch.Net.bind(Unknown Source)

    at sun.nio.ch.Net.bind(Unknown Source)

    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)

    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)

    at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:321)

    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)

    at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)

    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

    at org.eclipse.jetty.server.Server.doStart(Server.java:366)

    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

    at winstone.Launcher.<init>(Launcher.java:152)

    at winstone.Launcher.main(Launcher.java:352)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

    at java.lang.reflect.Method.invoke(Unknown Source)

    at Main._main(Main.java:246)

    at Main.main(Main.java:91)

TFS でビルド時にアプリケーションのバージョン番号に日付とビルド回数を設定する

したいこと

  • MSBuild でバージョン番号を付与したい

  • 今回設定したいバージョン番号

    • ApplicationVersion=1.0.20170926.1
1  0  20170926  1
-  -  -         -
|  |  |         |
|  |  |         `-- その日にビルドした回数(翌日にリセット)
|  |  `------------ ビルドした日付
|  `--------------- とりあえず固定
`------------------ とりあえず固定

TFS で使用できる変数について

$date=$(Get-Date -Format 'yyyy-MM-dd');

Write-Host "##vso[task.setvariable variable=date]$date"
  • この PowerShell をタスクの一つにして、起動すれば、$(date) でビルド時に使用可能

その日のビルドした回数はどうやって取得するか

    $buildNumber = $env:BUILD_BUILDNUMBER
    if ($buildNumber -eq $null)
    {
        $buildIncrementalNumber = 0
    }
    else
    {
        $splitted = $buildNumber.Split('.')
        $buildIncrementalNumber = $splitted[$splitted.Length - 1]
    }
  • $(Build.BuildNumber). で分割した2つ目から取得できそう

  • じゃ $(Build.BuildNumber) の1つ目が何か出力して確認してみる

20170926.1 
  • 自分が欲しい値そのままではないか。。。

まとめ

というわけで、今はこの設定でビルドしてる

/p:ApplicationVersion=1.0.$(Build.BuildNumber)

SourceTree で rebase してコンフリクト解決してすぐコミットしてしまったとき

qiita.com

上記の記事を参考にして、rebase -> コンフリクトの解決をしてたんですが、

特に手順5の後にコミットメッセージを入力してコミットしてしまうというミスを犯しやすいので注意が必要です。

これをやってしまいました。

SoureceTree からの解決方法が分からなかったので、コマンドから rebase を無かったことにしました。

1.コマンドで確認

$ git status
On branch fix-branch
You are currently rebasing branch 'fix-branch' on 'e114a18'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

2.rebase中でコンフリクト解消したから、git rebase --continue を実行してみる。

$ git rebase --continue
Applying: コメント
No changes - did you forget to use 'git add'?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

3.対応方法がよく分からなかったので、rebase を無かったことにしようと git rebase --abort を実行。

rebase 中止して最初からやり直しました。

GitHub勉強会 in Kanazawa に行ってきた

connpass.com

メモ

感想

  • GitHub を中心に開発を行うってことが世界中でスタンダードになってきていると感じた
  • ただし、それはまだごく一部であって、どうやって今後 今も残るバージョン管理?なにそれ?みたいな企業が、自分で気づいて普及していけるかが大事
  • それをサボった企業とかに魅力はなくなってくよ(GitHub にかぎらず)

@wtnabe 氏のツイートを肝に銘じてく

Windows10 に Go インストール

環境

  • Windows10 64bit
  • Go 1.9

インストール

Downloads - The Go Programming Language

go1.9.windows-amd64.msi をダウンロード

インストールフォルダーも C:\Go\ のまま続行

インストールが完了すると GOROOT(C:\Go\), PATH(C:\Go\bin) 共に設定されているので、 コマンドプロンプトを起動して go コマンドを入力すると、help が表示される。

GOROOT とか PATH を自分で設定して、OS再起動必要みたいなブログもあったけど現在バージョンでは不要みたい。

あと、GOPATH っていう変数の設定が必要みたいだけど、Helpで確認すると設定されていない場合はホームディレクトリになるみたい。

>go help gopath

If the environment variable is unset, GOPATH defaults
to a subdirectory named "go" in the user's home directory
($HOME/go on Unix, %USERPROFILE%\go on Windows),
unless that directory holds a Go distribution.
Run "go env GOPATH" to see the current GOPATH.

とりあえず最初はこのまま。

初めて家族でキャンプに行ってきたのでメモ

家族

  • 自分、妻、男の子(2歳11ヶ月)
  • キャンプ初めて

行った日

8/26, 27 の1泊2日

行ったキャンプ場

奥飛騨温泉郷オートキャンプ場

選んだ基準

  • オートキャンプ場
    • 車を近くに止めて移動を楽にしたかった
  • 子供の遊び場がある
    • 魚釣りや遊具もあって、子供はすごく楽しんでいた。
    • 釣った魚を焼いて食べれるのもいい
  • 自宅から二時間以内
  • ある程度施設が整っている
    • 初心者なのでサバイバル的な要素はなし
  • レンタルが可能
    • とりあえず一回やってみて、色々揃えたかった(テントなど)

事前に準備したもの

レンタルしたもの

  • テント
  • テーブル 2つ
  • 椅子 2つ
  • ランタン 1つ

ほしいもの

  • まくら
    • 硬くて寝心地が悪かったのもあるが、腕に頭おいて寝たせいで首が痛かった
  • 厚手のマット
    • 今回、銀マット+ 寝袋で寝たけど硬いし、寝心地が悪い(夜中に何回か起きた)
    • エアベッドが必要かは要検討
  • ランタン
    • 今回自分たちのキャンプしている場所だけ暗かった
    • 白色系のランタンをレンタルしたけど、暖色系の方が雰囲気も出て圧倒的に良い
    • 明るさもある程度必要
  • コンロ
    • 1つでは調理待ちが発生してしまって同時に調理が出来ない
    • 2つは必要
  • テーブル、椅子

    • ある程度快適に過ごせる大きさのものが必要
  • テント

    • レンタルじゃなくて自分のでキャンプしたい
    • どんなのがいいかはまだよく分からない
    • 快適に過ごすためには3人で寝ても余裕のある大きさは必要

Visual Studio Team Services のリモートブランチが Visual Studio に表示されないとき

環境

現象

Visual Studio Team Services にリモートブランチを作成したけど、Visual Studio の チームエクスプローラーに表示されなくて、 リモートブランチを clone 出来ない

対応

チームエクスプローラーの同期メニューで上部のフェッチをクリックすると表示される。

入力方向のコミットの下のフェッチではない。

参考 stackoverflow.com