LoginSignup
11
11

More than 5 years have passed since last update.

【iOS】jenkinsでfastlaneを実行してtestやipaファイルの作成を行う

Last updated at Posted at 2017-07-27

iOSユーザーはfastlaneを使うと、testやipaファイルを作るのが自動で出来ると聞いたので早速利用してみることにしました。
ここでは、jenkinsからfastlaneを実行するまでを解説いたします。

jenkinsのセットアップ

自分は、macでhomebrewを使ってインストールしました。
homebrewを使ってインストールした場合は、PCにjenkinsのユーザーが作られず、ログイン中のユーザーに作成されます。

homebrew でインストール

brew install jenkins

今回は、fastlaneで実行するのでjenkinsにgitのpluginが入っていれば、他は特に必要ありません。

・jenkinsがインストールされる場所

/usr/local/opt/jenkins

自動起動の設定

cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

を実行することで、/usr/local/opt/jenkins/に作成された、homebrew.mxcl.jenkins.plistファイルを~/Library/LaunchAgentsにコピーすることができます。

・自動起動の設定

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

・自動起動の解除

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

を実行することで、PCを立ち上げると自動で起動したり解除したりできます。

再起動方法

launchctl stop homebrew.mxcl.jenkins
launchctl start homebrew.mxcl.jenkins

他に、 webからも実行することができます。

http://localhost:8080/safeRestart

gitからリポジトリをcloneする

jenkinsの左上にある、新規ジョブ作成を選択します。
以下のような画面になるので、
Enter an item name にジョブの名前を入力 -> フリースタイル・プロジェクトのビルド を選択 -> OK
を選択します。

new job.png

するとジョブの設定画面になるので、
ソースコード管理 -> git
を選択して、リポジトリURLを入力します。

jenkins_sourcecode.png

今回はbitbucketを利用して非公開リポジトリを設定したので、ssh接続が必要でした。

・Bitbucketでssh接続する方法

error_ssh.png

のようなエラーが出たら、ssh接続が出来ていないようです。
ssh接続が出来ていても、初めてssh接続する場合は、ここに書かれている

"git ls-remote -h git@bitbucket.org:ユーザー/sample.git HEAD"

のコマンドを実行するとエラーが出なくなります。

エラーが出なければ保存して、ジョブの画面に戻ります。
ジョブの画面からビルド実行を選択します。

エラーが発生せずに完了したら、gitからプロジェクトがクローンされます。

・リポジトリがクローンされる場所

/Users/ユーザー/.jenkins/workspace

workspaceの中にプロジェクトがクローンされます。

jenkinsでfastlaneを実行する

ジョブの画面に戻り、
設定 -> ビルド -> ビルド手順の追加 -> シェルの実行
を選択します。

jenkins_shell_setting.png

シェルスクリプトの所に、

fastlane test

もしくは、bundlerを使用してfastlaneを利用している場合は、

bundle exec fastlane test

と設定すれば動き出すはずですが、コンソールを確認すると以下のようなエラーが発生します。

+ bundle exec fastlane beta
/var/folders/md/xg9wzwvj04s8_cv48zg72v0h0000gp/T/jenkins6293955055621288425.sh: line 2: bundle: command not found
Build step 'シェルの実行' marked build as failure
Finished: FAILURE

PATHの設定

原因はbundleのコマンドが無いと言っていますので、PATHが通っていないことが考えられます。
そこで、PATHを通す設定をします。

export PATH=/usr/local/bin:$PATH

これで実行すると、次はまた別のエラーが発生します。。

+ export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ bundle exec fastlane beta
/Library/Ruby/Gems/2.0.0/gems/fastimage-2.1.0/lib/fastimage.rb:67: warning: already initialized constant URI::DEFAULT_PARSER
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/uri/common.rb:545: warning: previous definition of DEFAULT_PARSER was here

Looking for related GitHub issues on fastlane/fastlane...

➡️  [33mcharacter encoding: US-ASCII and UTF-8[0m
    https://github.com/fastlane/fastlane/issues/8234 [[32mclosed[0m] 5 💬
    2 weeks ago

➡️  [33mincompatible character encodings: UTF-8 and US-ASCII in a Jenkins Pipeline[0m
    https://github.com/fastlane/fastlane/issues/8680 [[32mclosed[0m] 3 💬
    4 weeks ago

➡️  [33mfastlane not working after updating ruby.[0m
    https://github.com/fastlane/fastlane/issues/8529 [[32mclosed[0m] 7 💬
    4 weeks ago

and 3 more at: https://github.com/fastlane/fastlane/search?q=incompatible%20character%20encodings:%20US-ASCII%20and%20UTF-8&type=Issues&utf8=✓

🔗  You can ⌘ + double-click on links to open them directly in your browser.

ローケルを設定

上記エラーにあるfastlaneのissues:8234を確認するとローケルが設定されていない等のことが書かれています。
そのため以下のようにローケルの設定を追加します。

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

シェルスクリプトの内容

最終的には、シェルスクリプトに以下を設定することになります。

export PATH=/usr/local/bin:$PATH
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

bundle exec fastlane test

これでjenkinsでfastlaneを実行することが出来ました!

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11