A certain engineer "COMPLEX"

開発メモ その184 JenkinsにOSXのSlaveノードを追加する

Introduction


追加する作業のメモ。
MacMiniのTimemachine復元に失敗したため再インストールしたので。

How to


OSX側

まず、秘密鍵、公開鍵を作成し、authorized_keysを作成していきます。

続いて、Javaをインストール。
サクッとHomebrewでインストール。

Jenkins側

注意するのは、既存のエージェント設定は作り直したほうが良いです。
というのも、認証情報だけ更新しても動作しなかったためです。

ノードを追加します。
新規で作り直すので、Permanent Agentを指定。

リモートFSルートはJenkinsユーザのフォルダ配下を指定します。
認証情報は次の画像のような感じ。

秘密鍵はBEGIN RSA PRIVATE KEYEND RSA PRIVATE KEYを含む形でペーストします。

開発メモ その182 関数呼び出し演算子をポインターオブジェクトから使う

Introduction


もうタイトルそのまま。
すぐに忘れるし、調べてもキーワードが悪いのか、すぐにたどり着けないためメモ。

Answer


Consider the following:class MyClass {public: int operator ()(int a, int b);};When having:MyClass* m = new MyClass();I want to access the operator() method...

ありがとう、SO!!

開発メモ その181 公式GitLabからExportしてImportする際にエラー

Introduction


公式のGitLabのリポジトリをExportしてローカルのGitLabにImportする際、下記のエラーが発生しました。

Import version mismatch: Required 0.2.3 but was 0.2.4

What does it mean?


要するに

(Export先のGitLabは)0.2.3を要求しているけど、(Import仕様としているデータは)0.2.4だよ

ってことです。

大抵、公式のGitLabは最新版なので、ローカルのGitLabが古く、Importシステムのバージョン不一致になってしまった模様。

How to resolve?


安全にやるなら、ローカルのGitLabをバージョンアップするのが筋でしょうが、そうはいかないからこの記事があるわけです。

対策を探したところ、公式のIssueに

### Summary I exported a project from GitLab 8.13 (if I recall correctly) a while back, which is now deleted. I just set up a new 8.16 install, and I...

If the import is small or does not have many features there are more probabilities that it will succeed, and you could try the following at your own risk:


mkdir project_export
tar xfv old_export_file.tar.gz -C project_export
cd project_export
echo '0.1.6' > VERSION
tar czf experimental_new_project_export.tar.gz *

と紹介されていました。

バージョンの不一致をだますために、内部のバージョン表記を書き換えるようです。
上のシェルを少し使いやすくしました。


./sample.sh 2019-09-24_01-11-731_testman_tests_export.tar 0.2.3

指定したエクスポートファイルのバージョンを第2引数で指定したバージョンで上書きします。

当然ながら問題が起きる可能性がありますが、まずはお試しあれ。
ソースだけなら普通にcloneアンドpushで良いですが、Issueがあるとそうもいかず。