JenkinsとBonobo Git ServerをWindowsにインストールしてAndroidアプリケーションを構築します

こんにちは Linuxを掘り下げる時間がないため、ネットワークを検索してAndroid向けのJenkins連続ビルドサーバー、Gitサーバー、およびそれらの統合のWindows OSのインストールおよび構成手順を検索する際に、情報のギャップに直面して、私が得たものに関する情報を共有することにしました。

分布



最後の準備


JDK、Windows用Git、およびAndroid SDKツールは、デフォルト設定で最初からインストールできます。

Bonobo gitサーバー


シンプルで簡単なgitサーバー自体には、IISおよびMS SQL Server Express 2008を含むASP.MVCのインストールが必要です

IISサーバー

ここで異常なことは何もありません。Webサーバー(IIS)の役割を追加します。

IIS
画像

次のフォームの主なことは、ASP.NET 4.5をFeatureに追加することを忘れないことです。

特徴
画像

ASP.NET MVC4

配布を実行します。

ASP.NET MVC4インストール
画像

途中で、MS SQL Server 2008 Expressがインストールされ、米国saのパスワードが求められます。 必要がなければ、もう必要ないことを願っています:

MS SQL Serverのインストール
画像

MVCのインストール後、サーバーの役割(機能ではなく以前)の新しい設定を行い、ASP.NET4.5のサポートをWebサーバーに追加する必要があります。 ASP.NET MVC 4をインストールする前は、このサブセクション(アプリケーション開発)はIISコンポーネントにありませんでした!

サーバーの役割-IIS-Webサーバー-アプリケーション開発-ASP.NET 4.5
画像

Bonobo gitサーバー

これで、gitサーバーの直接展開に進むことができます。 配布パッケージのコンテンツをIISサーバーのwwwrootに解凍し、IIS_IUSERS KMの権限を付与してApp_Dataディレクトリを変更します。

IIS wwwrootおよびApp_Dataディレクトリに対するIZ_IUSERS KM権限
画像

IISマネージャーを起動し、BonoboGitServerアプリケーションに変換します。

IISマネージャーのアプリケーションへの変換
画像

IISマネージャーのアクションですべてが正常に実行された場合は、[参照]をクリックします。*:80(http)を取得し、(名前とポートを変更しなかった場合)localhost / BonoboGitServerに取得します。

Bonobo Gitサーバーのログインページ
画像

最初のログインadmin / adminのログインとパスワード。 サーバーには多くの設定がありません(いずれにせよ、Webインターフェイス経由)。たとえば、インターフェイス言語を変更できます。

ボノボ言語
画像

開発者やジェンキンスなどの新しいユーザーを作成します。 1つ目は独自に作業し、2つ目は将来のアセンブリサーバーに必要です。

新しいBonobo Gitサーバーユーザー
画像

新しいリポジトリを作成し、開発者とアセンブラに権利を付与します(画面にはjenkins KMはありませんが、すべてを順番に行うとそこにあるはずです...)

新しいリポジトリ
画像

求められている.gitアドレスを持つリポジトリページの例。 なぜなら localhostが表示されているアドレスの同じマシンのブラウザからサーバーにアクセスしましたが、通常のDNSサーバー名またはIPを持っている可能性があります。

リポジトリアドレス
画像

Android Studioでプロジェクトを作成して、リポジトリのアドレスをリモートブランチとして指定できます。 このローカル部分はすべてスキップします。

利用可能なリモートリポジトリ
画像

ジェンキンス


Jenkinsはmsiからインストールされ、実際には何も聞かれません。インストールの最後に、ファイルからinitialAdminPasswordをコピーしてパスワードを貼り付ける必要があるアドレスのページが自動的に開きます。

ジェンキンのロックを解除
画像

将来、パスワードUZ adminも変更できます。

必要なプラグインをインストールし、サーバーを構成します。 Jenkinsの管理-プラグインの管理-利用可能に注意してください:


Jenkinsプラグイン
画像

Jenkinsを再起動した後、Jenkinsの管理-システムの構成セクションに移動し、2つの場所でAndroid SDKへのパスを設定します。

環境変数のANDROID_HOME
画像

そして、Android SDKルートの同じページの一番下で:

Android SDKルート
画像

このパラメーターがAndroid Emulator Pluginに問題があると思われない場合は、インストールされていない可能性があります。

次に、Jenkinsの管理-グローバルツール構成の構成ページに移動して、コンポーネントのパスを確認し、必要に応じて指定します。

グローバルツールの構成
JDKでは、すべてが簡単です。

画像
Gitは変更できません。パス変数にgit実行可能ファイルへのパスが含まれていて、コマンドラインで使用できる場合、Jenkinsはそれを使用できます。

画像

そして、Gradleに自動的にダウンロードさせます。 原則として、JDKでも同じトリックを実行できますが、Android SDKをインストールする際には、システムに登録されたJDKが必要であり、JenkinsがJDKをダウンロードする場所を詳しく調べませんでした。

画像

すべてのようですか?

ビルドタスクの作成


Jenkinsのメインサイドメニューで、[新規アイテム]をクリックし、「フリースタイルプロジェクト」タイプのタスクの名前を見つけて[OK]をクリックすると、タスクの設定が開始されます。 [古いビルドを破棄する]チェックボックスをオンにすることを忘れないでください。そうしないと、すべてのバージョンのビルドがすぐにサーバーで満たされます。

全般
画像

[ソースコード管理]セクションで、プロジェクトのgitリポジトリのURLを指定します。 今後は、リポジトリにアクセスするための認証情報を開始せず、代わりに使用しません。

ソースコード管理
画像

masterブランチを収集します。 また、自動アセンブリを構成することもできます。特に、リポジトリを1分ごとにポーリングし、新しいコミットが検出された場合にアセンブリを開始できます。 Poll SCMをマークして、* * * * *を記述します。

ビルドトリガー
画像

ビルドセクションで、[ビルドステップの追加]をクリックし、Gradleアセンブリを構成します。 gradleバージョンは、Global Tools Configurationsで指定したアクセス可能になっている必要があります。 「クリーンビルド」という単純なタスクを作成します。 これらは、プロジェクトのルートにあるgradlew.batタスクで利用できるタスクです。 ここで、コレクターの他のタスクを呼び出すことができます。 キーで。

グラドル
画像

また、ビルド後のアクションを1つ追加します-AndroidアプリケーションであるAPK-schnikiを保存します。 だから私たちは書く:

**\*apk: 

ビルド後のアクション
画像

組立


アセンブリを保存して実行すると、次のように表示され、10分間ハングしてリポジトリに到達できません。

 git.exe fetch --tags --progress http://localhost/Hello.git +refs/heads/*:refs/remotes/origin/* 

gitリポジトリでは許可されていません! Jenkinsリポジトリ(ソースコード管理で-none-を残した場所)にログイン/パスワードのペアを追加しても、どのように試してもうまくいきませんでした。 他の方法を探す必要があります。

コマンドラインはKMセッションに代わって起動され、ジェンキンスはシステムに代わって起動され、それについて何も知らないため、Credential Managerリポジトリも発生しないようです。 つまり これは役に立ちません:

資格情報マネージャー
画像

ネットワークでさらに検索すると、いくつかのヒントが得られました。


Git認証

これを行うには、 PsToolsユーティリティセットのPsExec.exeが必要です。 これにより、システムの下からcmd.exeを実行できます。 昇格されたアクセス許可でcmd.exeを実行し、実行します。

 PsExec.exe -i -s cmd.exe 

新しいコンソールで必要なのは、必要なリポジトリをノックするだけです。たとえば、コマンドラインでクローンを作成します。 資格情報が要求されます:

Git
画像

Jenkinsがこのリポジトリにアクセスできるようになります。 これは、開発者とともにBonobo Gitサーバーをセットアップするときに作成したKMと同じです。 将来これらの資格情報を変更する必要がある場合は、手順を再度実行する必要があります。

Android SDKコンポーネントのコンポーネントの不足とライセンスの受け入れ

SDKでモジュールが見つからず、アセンブリコンソールが次のようなメッセージを発行する場合があります。

 A problem occurred configuring project ':app'. You have not accepted the license agreements of the following SDK components: [Android SDK Platform 24, Android SDK Build-Tools 24.0.1]. 

この場合、昇格した権限でSDKマネージャーを実行し、不足しているコンポーネントをインストールする必要があります。

Android SDKマネージャー
画像

すべて、すべてのシャーマニズムの後、アセンブリは成功しました!

ビルド成功!
画像

Android開発者のチームを育てることができます。

PS適切なプラグインを使用してプロセスをさらに自動化し、Google Playストアでapk'shnikの自動公開を設定することができますが、何か問題があればこのことについてもう一度書くことができます。

Source: https://habr.com/ru/post/J313564/


All Articles