2014年9月9日火曜日

Jenkinsでタイムスタンプの値を取得したいとき

ジョブの成果物でファイル名に日時を含めたいとき、どうすればいいか確認した結果
環境変数のBUILD_IDを利用すれば良いようです。
BUILD_DATEも在るらしいですが、私の環境ではこの変数は参照できませんでした。orz
素直に標準で用意されているBUILD_IDを利用したいと思います。

実行するビルド手順によって変数の参照方法が異なります
参照方法が間違っていて失敗してしまいました。気を付けないと。

Windowsバッチコマンドの実行の場合は
%環境変数名%→%BUILD_ID%
シェルの実行の場合は
${環境変数名}→${BUILD_ID}

2014年9月7日日曜日

Jenkins で Graphics N/A Unable to access X.が出たとき

Jenkinsで本来グラフが表示される部分に次のメッセージが表示されるとき

Graphics N/A Unable to access X. You need to run the web container in the headless mode. Add -Djava.awt.headless=true to VM

Open JDKをインストールしている環境ではdejavu-sans-fontsというパッケージを
インストールすることで解決できるようです。
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+got+java.awt.headless+problem
VagrantなどでJenkinsをCentOS環境にセットアップするときには次のような感じにしています。
# install Jenkins
sudo yum install -y java-1.6.0-openjdk
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install -y jenkins dejavu-sans-fonts
# booting and autorun jenkins
sudo chkconfig jenkins on
sudo /sbin/service jenkins start

2014年9月6日土曜日

Jenkinsでvagrant upするときはBUILD_ID=dontKillMe

Jenkinsでvagrant upするときにはBUILD_ID=dontKillMeの設定が必要
https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller
ジョブを終了するとプロセスも終了するようですがBUILD_ID=dontKillMeを設定することで
プロセスを残したままにできるとのこと。

PHP Fatal error: Class 'DOMDocument' not found が出たとき

PHP Fatal error: Class 'DOMDocument' not found in /phpunit/phpunit/PHPUnit/Util/XML.php on line 136
PHPのXMLが無いとのことなのでphp -mでインストールされているモジュールを確認。
[PHP Modules]
:
xml
:
XMLの表示はあったのですが何かが足りなかったようで php-xml をインストールすると解消しました。
[PHP Modules]
:
xml
xmlreader
xmlwriter
:
xmlreaderとxmlwriterが追加されていました。

CentOSにAndroid SDKをCLIでセットアップする

  1. Android SDKをセットアップするフォルダに移動
    cd /opt (セットアップするフォルダの場所はお好みで)
  2. Android Developerサイト(http://developer.android.com/sdk/index.html)の
    VIEW ALL DOWNLOADS AND SIZESからSDK Tools Only(Linux 32 & 64-bit)Android SDKを
    ダウンロード wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz
  3. 圧縮ファイルを解凍
    tar zxvf android-sdk_r23.0.2-linux.tgz
  4. 解凍が成功したら圧縮ファイルを削除
    rm android-sdk_r23.0.2-linux.tgz
  5. PATHにAndroidの環境変数を設定
    vi /etc/profile.d/android.sh
    export ANDROID_HOME="/opt/android-sdk-linux"
    export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH"
  6. 環境変数を再読み込み
    source /etc/profile
  7. Android SDKの一覧を表示
    android list sdk -u -a
    先頭に数字が表示されるのでインストールしたい項目の数字を覚えておく
  8. SDKをインストールする
    android update sdk -u -a -t 一覧で表示されていた数字
  9. 他のユーザでも実行できるようにSDKの実行権限を変更
    chmod -R 777 /opt/android-sdk-linux

2014年9月4日木曜日

CentOSでSSHなどコンソールでパスワードをtypoしたときにクリアする

CentOSでSSHなどコンソールでパスワードを入力するとき入力した内容が表示されないので
typoしてしまうとやり直すためにバックスペースを連打していました。

こういうとき Ctrl+u の同時押しで入力した内容をクリアできます。

ローカル:Windows7
リモート:CentOS5とかCentOS6

2014年8月30日土曜日

Thunderbirdのアーカイブの利用について

Thunderbirdのアーカイブを利用するとデフォルトでは年単位のフォルダで区切られています。
フォルダの区切りを年月単位で設定したかったのですが、次の方法で出来ました。
  1. メニュー[ツール]のアカウント設定を選択
  2. アカウントの[送信控えと特別なフォルダ]を選択
  3. [メッセージの管理]の[アーカイブオプション]をクリック
  4. [アーカイブメッセージを次の場所に保存します]で[月別のフォルダ]を選択
    [アーカイブされたメッセージのフォルダ構造を維持する]をチェックすることで
    受信トレイのときのフォルダ構造を維持して年月単位でフォルダが作成されます
すでに会社名でフォルダ分けしているので、フォルダ構造を維持することもできるので
アーカイブでのフォルダ構造をどうするか悩み中です。

以前フォルダの区切りを年月単位で行えるか調査したところ、メニューからではなく
設定エディタで値を操作する必要があったので、そのときは止めました。