Integration between GitLab and Fuego

Slides:



Advertisements
Similar presentations
P HI T S スクリプト言語を用いた PHITS の連続 実行 Multi-Purpose Particle and Heavy Ion Transport code System title 年 2 月改訂.
Advertisements

ベイズ推定に向けた解析環境整備 WinBUGS, R2WinBUGS, RSWBwrapper.R のセッティング.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
OpenOffice.org の独自コンパイル
自然言語処理プログラミング勉強会0 - プログラミング入門
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
東京工科大学 コンピュータサイエンス学部 亀田弘之
自社製ミドルウエアをDalvikと連携させることが可能になる
進捗報告 M2 下村 地上系会議.
実習用サーバの利用開始手順 (Windowsの場合) TeraTerm Proをインストール 公開鍵をメールで送付
SharePoint Server において 構成ウィザードが失敗する場合の トラブルシューティング
Log4netを使ったロギング機能 オガシン.
CODE::BLOCKSで 無料で簡単 Windowsアプリ開発
Log4netを使ったロギング機能 オガシン.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
COPPER/FINESSE System構築
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
Lightweight Language Weekend ls-lRシェル
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
第4回 個人の動画配信補足のためのWeb構築
-J MESA Toolsについて 2003/9/12 渡辺 昌彦 IHE-J 技術検討委員会 2003/9/12.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第4, 5回 シェルプログラミング 担当:青木義満
Bottle/Pythonによる Webアプリ入門
SSID a: CEWG b/g: CEWG2 WEP Key : linux
都市情報学専攻 情報基盤研究分野  M04UC513  藤田昭人
の まとめ 2007/04/02 (Mon) / d;id:hzkr
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
Cygwin の install.
スクリプト言語を用いたPHITSの連続実行
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
データベース設計 第9回 Webインタフェースの作成(1)
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
Cプログラミング演習 中間まとめ2.
音声編集ソフトの例:Audacity For Mac, Windows, and Linux
≅ ≰ ≳ ≗ ≲ ≩ ≴ ≥ ver manual Tanaka.
図書館職員のための アプリケーション開発講習会
Gmsh, Elmer, Garfield++のInstall
Windows PowerShell Cmdlet
VBA ( Visual BASIC for Application) を使えるようにする方法
コードクローンの動作を比較するためのコードクローン周辺コードの解析
プロジェクトの エクスポートとインポート 2014/10/7.
Borland C++ のインストール 教科書 pp
UNIX演習 情報ネットワーク特論.
Borland C++ のインストール.
≅ ≰ ≳ ≗ ≲ ≩ ≴ ≥ ver manual Tanaka.
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
~目次~ Ⅰ.動作環境 Ⅱ.ファイルのダウンロード Ⅲ.システムのインストール Ⅳ.初期設定 Ⅴ.アンインストール
JAVAバイトコードにおける データ依存解析手法の提案と実装
ファイルの読み込み #!/usr/bin/env perl #Perlスクリプトの指定 open(FILE, "food.txt");
UNIX演習 情報ネットワーク特論資料.
高度プログラミング演習 (01).
UNIX演習 情報ネットワーク特論資料.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
Global standard programming with GNU Autotools
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
高度プログラミング演習 (11).
RaQ3/4パッチ強化セミナー CobaltResQ 小田 誠.
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
クリエイティブ リサーチ 2019/05/20 日本工学院八王子専門学校 M.Katsube.
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
Presentation transcript:

Integration between GitLab and Fuego Tomohito Esaki 江崎 朋人 IGEL Co., Ltd.

自己紹介 主に組込向けのソフトウェア開発 Android の Camera HAL, Camera driver Android, Tizen IVI のポーティング wayland/weston の導入 Android, Tizen, wayland application の試作 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLAB と Fuego の連携 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

Fuegoって? Test framework for Linux System Docker + Jenkins + shell script + python script + test Jenkins ssh scripts ssh server Docker Container root fs 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

Fuego の特徴 GUI、CUIの両方が用意されている たくさんのテストがすでに用意されている テスト結果を json 形式で保存する Fuego の core は python + shell script テストの実行はボタンを1回押すだけ 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

ここに key: value でパラーメータを追加できる Fuego Test に必要なもの テストコード [ProjectName].tar.gz Tarball で用意。next branch (developing branch?) では git に対応しているようだが、テストが必ず失敗したため不採用とした スペックファイル [ProjectName].spec 右のような json 形式 テスト用 shell script [ProjectName].sh { “testName”:”sample-test”, “specs”: [ “name”: “default” } ] ここに key: value でパラーメータを追加できる 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

テスト用 shell script テストコードをビルドする ビルドでできたファイルをボードに転送 テスト実行 #!/bin/bash tarball=sample-test.tar.gz function test_build { . /opt/poky/2.1.2/environment-setup-aarch64-poky-linux libtoolize –automake autoreconf –ivf –l ${OECORE_NATIVE_SYSROOT}/usr/share/aclocal ./configure ${CONFIGURE_FLAGS} make –j2 } function test_deploy { put sample-test $BOARD_TESTDIR/fuego.$TESTDIR/ function test_run { report “cd $BOARD_TESTDIR/fuego.$TESTDIR; ./sample-test” . $FUEGO_CORE/engine/scripts/functional.sh テストコードをビルドする ビルドでできたファイルをボードに転送 テスト実行 Fuego Core script 呼び出し 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

テスト結果 ${FUEGO_RW}/logs/[ProjectName]/ 以下にテスト結果を残す consolelog.txt Jenkins の console log へのシンボリックリンク devlog.txt Fuego が実行したコマンドリスト run.json テスト結果レポート syslog.before/after.txt テスト前後の syslog testlog.txt テストプログラムが出力したログ 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

Fuego 改善案 テストコードを tarball で用意する必要がある スクリプトやスペックファイルはどう管理する?? Git で管理しているので git をそのまま使いたい スクリプトやスペックファイルはどう管理する?? テストコード+script + spec を一括で git で管理し、git push をトリガーとしてテスト実行出来たら便利そう? - test codes - fuego/ |- fuego-test.sh `- ProjectName.spec 試してみた ※fuego-test.sh: テスト用スクリプト 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab と連携する Jenkins の plugin があるので、それを利用する(*1) GitLab + Fuego GitLab と連携する Jenkins の plugin があるので、それを利用する(*1) git push Push通知 ssh local GitLab Jenkins Fuego *1 Jenkins のバージョンを上げる必要あり!! 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego 問題1 spec ファイルは /fuego-core/engine/tests/[ProjectName]/ になければいけない 環境変数 FUEGO_SCRIPT_DIR が設定されている場合は $FUEGO_SCRIPT_DIR/spec.json を読むように Fuego core を改造 engine/script/oven.py def parseSpec(testdir, testspec): # FIXTHIS: get fuego-core from env - specpath = ‘/fuego-core/engine/tests/%s/%s.spec’ % (testdir, testdir) + if not os.environ[“FUEGO_SCRIPT_DIR”] + specpath = ‘/fuego-core/engine/tests/%s/%s.spec’ % (testdir, testdir) + else: + specpath = ‘%s/%s.spec’ % (os.environ[“FUEGO_SCRIPT_DIR”], testdir) 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego 問題2 Spec ファイルに key:value を追加するとソースコード展開前にテストに失敗する Fuego bug? プロジェクト名に “-” が使われていると必ず起きる ProjectName_KEY=value が環境変数として設定されるため、ProjectName に “-” が使われているとここで怒られる engine/script/oven.py def generateSpec(ts, fout): … varname = “%s_%s” % (ts.name, var) - varname = string.replace(varname, “.”, “_”).upper() + varname = re.sub(“\.|-”, “_”, varname).upper() value = “%s” % (ts.variables[var]) 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego 問題3 GitLab と Jenkins の連携設定をすると Jenkins がテストコードのソースを展開する Fuego もコードを展開しようとする。Jenkins の展開先と Fuego の展開先が異なる問題が発生 srctype を追加 spec file に記述 種類は tarball, git, raw Fuego core を改造 Jenkins が展開した場合用 { “testName”:”sample-test”, “specs”: [ “name”: “default”, “srctype”: “raw” } ] 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego 問題3 +function src_type { + upName=`echo “${JOB_NAME^^}”| tr ‘.|-’ ‘_’` + spec_srctype=“${upName}_SRCTYPE” + if [ ! –z “${!spec_srctype}” ]; then + srctype=${!spec_srctype} + fi + echo “${srctype}” +} function pre_build { cd ${WORKSPACE} - upName=`echo “${JOB_NAME^^}”| tr ‘.’ ‘_’` + scrtype=`src_type` + if [ $srctype = “raw”]; then + return 0 + fi + upName=`echo “${JOB_NAME^^}”| tr ‘.|-’ ‘_’` function pre_deploy { cd “$WORKSPACE” + scrtype=`src_type` + if [ $srctype = “raw”]; then + return + fi 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego できた!! git push Push通知 ssh local GitLab Jenkins Fuego GitLab にも CI ツールはあるので Jenkins はなくても動かせるのでは? 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego without Jenkins git push local GitLab Doker Image ssh Fuego scripts 試してみた 色々変数設定がないため怒られる Jenkins が設定している環境変数が必要!! 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego without Jenkins 以下の変数設定が必要 FUEGO_RO=/fuego-ro FUEGO_CORE=/fuego-core FUEGO_RW=/fuego-rw NODE_NAME=salvator-x TESTSPEC=default TESTDIR=simple-test BUILD_NUMBER=$CI_BUILD_ID export WORKSPACE=`pwd` export FUEGO_SCRIPT_DIR=$WORKSPACE/fuego テスト用スクリプト fuego-test.sh に記述 Python script が参照するので export する必要あり 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

GitLab + Fuego without Jenkins git push local GitLab Doker Image ssh Fuego scripts Fuego Test が Jenkins 無しで GitLab と連携できた! 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62

まとめ Fuego と GitLab の連携を試してみた。 Git push をトリガーにすることができた。 Jenkins を使わずに fuego テストができる環境が作れた Fuego: http://bird.org/fuego/FrontPage 2017/9/1 Integration between GitLab and Fuego / CEWG Japan Technical Jamboree 62