ろむめも

気になったこととか、調べたことをゆるくまとめます。主にプログラミング関連の話題が多いです。

プロキシ設定

困ることが多いproxy関連の設定方法をまとめます。

 

  • pip(pythonパッケージ管理モジュール)

pipをプロキシ環境下で使って、パッケージをインストールする方法 - ろむめも

 

  • git
git config --global http_proxy [proxyアドレス]
 
C:\Users\[User名]\.atom\.apm\.apmrcに以下必要な項目を追記する
http_proxy=http://[proxyアドレス]:[port]
http_proxy=http://[認証ID]:[password]@[proxyアドレス]:[port]
https_proxy=https://[proxyアドレス]:[port]
https_proxy=https://[認証ID]:[password]@[proxyアドレス]:[port]

ローカル開発環境へのJenkins導入メモ(windows+svn)

 

背景

プライベートプロジェクトにJenkins氏を導入しました。

一人でやっている遊びプロジェクトですが、所謂TDDやってみたいなとか、メトリクスとかプロジェクトの進捗を可視化したいなと思いました。また、可視化すればプライベートプロジェクトで最も重要な「モチベーション」の維持ができるかもしれないという淡い期待も込めて、Jenkins氏にメンターになって頂きたいという思いから、導入してみました。

 

環境

参考までに導入環境は以下です

OS:windows7 64bit home

jenkins:1.596

構成管理:svn(レポジトリはローカルに配置)

 

概要

ざっくり構想はこんな感じにしました。

f:id:romth:20150124161107j:plain

①ユーザーがソースコードをコミットする(Development/Commit)

②コミットをJenkinsに通知する(Hook)

③Jenkins働く(CheckOut/Build/Test/...)

④問題があればユーザーに通知する(Notice)

 

こうした理由は簡単で、業務用なら別ですけど、自宅のPCは必要なときしか電源入れないからです。他の構想としては例えばJenkins氏に深夜こっそり働いてもらう、定期的にレポジトリを見に行ってもらって変更があればビルドしてもらう、定期的にビルドしてもらうというような方法があると思います。自宅のPCは使うときにしか電源を入れないので、現実的にちゃんとライフサイクル回すにはこのフローが最適だと考えました。

 

導入

まずはJenkins氏のインストール。以下からインストーラを入手しました。

Welcome to Jenkins CI! | Jenkins CI

ダウンロードは右側の「Or native Package」というところのwindowsをクリックする。

 

svnはTortiseSVNを使っていたので、それをそのまま使いました。

TortoiseSVN - Home

svnのレポジトリ作成とかそのへんは割愛します。

 

環境設定

次にJenkins氏にsvnのレポジトリからcheckoutしてもらうための設定をおこないました。

①新規ジョブ作成

インストール時に特に操作してなければ、次のURLにアクセスすることで、Jenkins氏を確認できます。ポート番号は8080がデフォルトですが、任意の値に変更できます。

http://localhost:<ポート番号>

そして、左側にある「新規ジョブ作成」をクリックし、次の画面で「フリースタイル・プロジェクトのビルド」を選択してジョブ名を入力したところでOKをクリック

するとトップページに新しいジョブが追加されます。

Jenkins氏はこのジョブ単位で管理してくれます。

 

②ジョブの設定をする

トップページに戻って、先ほど作成したジョブ名をクリック

次の画面の左側の設定をクリック

ここで以下の設定を行います。

・プロジェクトの高度なオプションの「カスタムワークスペースを使用」にチェックを入れ、ディレクトリを設定

⇒デフォルトの場所(Program Files下)ではJenkinsにアクセス権を設定しなければならないので、他の場所に移したほうがよかったです。Jenkinsはこのワークスペースを使ってsvnのチェックアウトやビルドを行います。

 

ソースコードの管理をsubversionに設定し、Repository URLを設定。

この時レポジトリの位置がローカルにある場合は、「file:///C:/Users/workspace/*****」というような書き方をします。Jenkinsの不具合なのかなんなのか、赤字でアクセスできないと表示されるんですが、無視して設定を保存するとちゃんとアクセスできました。それ以外の設定は変更しませんでした。チェックアウト方式はお好みで。

Subversionの動作

 

・動作確認

ここまでの設定を保存し、左側メニューにある「ビルド実行」をクリックすると、問題がなければJenkins氏がsvnから最新のリビジョンをチェックアウトしてくれるはずです。

結果は「ビルド実行状態」から確認してください。

また、環境のデバックにはコンソール出力を活用するのが良いと思います。

コンソール出力は実行中ジョブの日時をクリックして、次のページでConsoleOutputをクリックすると出力されます。

チェックアウト後に、上図の「Build/Test」のようにテストコードの実行や各種解析をJenkinsにさせたければ、「ビルド手順の追加」をクリックし、例えば「windowsバッチコマンドの実行」等を選択してバッチコマンドを記述することができます。

 

ここまでで上の図のCheckoutとBuild/Testができるようになります。

 

svnとの連携

次に上の図の「Hook」を導入します。

イメージとしてはUserがCommitした時にsubversionに働いてもらって、jenkinsにCommitを通知するという流れです。そのため、svnのレポジトリのスクリプトをいじります。

レポジトリの中に「hooks」というフォルダがあるのでそこにhookスクリプト(tmplファイル)があります。

コミット前なら「pre-commit」、コミット後なら「post-commit」みたいなファイル名のようです。自分で好きな名前をつけても良いです。また、windowsの場合、拡張子をbatに変更する必要があります。私は名前をデフォルトのまま、post-commit.batを用意しました。そこに次のようにしました。

SET JOBNAME=<Jenkinsに設定したジョブの名前>
SET REPOS=<レポジトリの場所>(C:\\workspace 等)
SET JENKINSSERVER=<jenkinsサーバー>(http://localhost:8080等)

FOR /f "tokens=*" %%c IN (
'svnlook youngest %REPOS%'
) DO (
SET REV=%%c
)

FOR /f "tokens=*" %%b IN (
'svnlook changed --revision %REV% %REPOS%'
) DO (
SET POST=%%b
)

wget ^
  --header="Content-Type:text/plain;charset=UTF-8" ^
  --post-data="%POST%" ^
  --output-document="-" ^
  --timeout=2 ^
  %JENKINSSERVER%/job/%JOBNAME%/build?delay=0sec

書いていて思い出しましたが、上のバッチの利用にはwgetのインストールが必要です。以下を参考にインストールしました。

Windows版 wgetをインストールしよう:アシマネのドタバタ奮闘日記:So-netブログ

 

batファイルでは、Jenkins氏にwgetコマンド経由でビルド実行をお願いしています。

http://localhost:<ポート番号>/job/<job名>/build?delay=0sec

にアクセスすると働いてくれる(jenkins上のビルド実行クリックと同じ動作)ので、これをwgetで呼んでいます。

 

最後にTortiseSVNの設定をします。

どこでもいいのでエクスプローラ上で右クリック。svnのメニューから設定を選択。左側の設定メニューの中から「HookScript」をクリック。「追加」ボタンを押して、右上のダイアログから「post commit hook」を選択。ワーキングコピーと、先ほど作ったbatファイルの位置を設定。

 

以上の設定が正しくされれば、コミットをきっかけにJenkinsが働いてくれるはずです。ちょっと長くなったのでnoticeはいずれ書きます。

 

参考

Windows7に、一人で使うためのJenkinsを入れてみた - メモ的な思考的な

シフトキーが効かなくなった

現象

かねてからFILCOの青軸つかっているんですが、 キーボードの左側にあるシフトキーが効かなくなりました。

他のキーでなるようなカチャカチャという音ではなく、ガチガチガチという音が鳴るようになってしまいました。

原因

キーボードの掃除をしたのが原因だと思います。

もともとシフトキーの効きが悪かったので、直るかなと思って掃除したら、余計に悪化してしまったという事です。

掃除の手順は以下です。

  1. すべてのキーを外す
  2. サイバークリーンでゴミをとる
  3. 取れない汚れを固く絞った布でふき取る
  4. キーを元に戻す

対策

さて、どうしましょう?

修理出すか、どうしよう。。。

参考

使っている青軸キーボード(こわれてしまったものですが)

 

キーの取り外しに便利です。

 

サイバークリーン

スライム状の汚れ取りで、隙間のゴミにもアプローチできて非常に良いです。

ぐりぐり押し付けてもいいですが、放置しておくとべトーっと広がって、隙間に入り込んでくれるのが良いです。

 

キムワイプ

安心のキムワイプ。汚れの拭き取りに。

 

露骨にアフィリエイト貼ったブログ書いてみたらこうなりました。

 

pipをプロキシ環境下で使って、パッケージをインストールする方法

現象

pythonでpipを使ってパッケージ管理しようとしたんですが、次のようなメッセージが出てパッケージのインストールが出来ませんでした。

Cannot fetch index base URL ****

原因

プロキシ環境下で実行している場合、pipにプロキシアドレスを教えてからpip installを実行する必要があることがわかりました。

対策

プロキシ設定オプションは--proxy=****との事。
なので、通常の
pip install [パッケージ名]
ではなく、
pip --proxy=[プロキシアドレス(http://等)] install 「パッケージ名」
を使えばOKです。

macvimでcolorschemeを初めて変更する

背景

windowsで普段使っているエディタがgvimなんですが、mac環境でもvimが使えるようにしてみようかなと思ったので、macvimなるものを導入してみました。

その中で、colorschemeの設定を行ったので記載しておきます。

 

用意したもの

macvim、colorschemeは以下のものを使いました。

macvim-kaoriya - MacVim KaoriYa - Google Project Hosting

Wombat - Dark gray color scheme sharing some similarities with Desert : vim online

 

wombatのカラースキームは目に優しいので気に入ってます。

f:id:romth:20140628104831j:plain

 

方法

  1. macvimをダウンロードしてインストール
  2. wombat.vimをダウンロード
  3. terminalから"~/.vim/colors"に移動
  4. もし存在しない場合は"mkdir ~/.vim"あるいは"mkdir ~/.vim/colors"でフォルダを作成する
  5. "cp /Downloads/wombat.vim ~/.vim/colors/wombat.vim"でファイルをコピー
  6. もちろんmvでも可
  7. terminalから"vi ~/.gvimrc"で設定ファイルを開く
  8. 適当な位置に"colorscheme wombat"と書いて保存して閉じる
  9. macvimを起動する

以上で変更する事ができました。

 

苦労したポイント

何に苦労したかというと、以下になります。

  • .vimrc/.gvimrcファイルの場所がわからなかった。

    →コンソールだから標準で隠しファイルも表示してくれていると思ったら違ったんですね!デフォルトでは表示されないようでした。

  • ホームディレクトリに.vimと.vim/colorsが無くて、他の場所にあるのかなと思って探してしまった。

    →これも一つ目と一緒の理由です。

  • 最初.vimrcに"colorscheme wombat"と記載していて、terminalからviを起動したときにcolorschemeなんてコマンド無いよって怒られた

    →GUI系の設定は.gvimrcに書くようにReadMe様から指示が出ておりました。確認不足です。

 

参考

MacVim-KaoriYaでcolorschemeの設定 - 脳みそHack

 

windowsコンソールでドライブを変更する方法

背景

よく忘れてしまうのでメモ

(この理由ばっかりだから背景やめようかな!)

 

本題

方法2つあるみたい

①C:\に移動して、「E:」

②任意の位置で、「cd /d E:\」

 

参考

cmd- change to e drive? - General Discussion - MSFN Forum

コマンドプロンプト:『cd』コマンドの使用例