Soumettre la recherche
Mettre en ligne
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
•
4 j'aime
•
2,627 vues
Yu Nobuoka
Suivre
リリース用の Android アプリの APK パッケージを Jenkins 上で作成し、GitHub に “リリース” を生成するようにしたことについての発表です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 13
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Kengo Suzuki
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
Takehara Ryo
僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtips
Masataka Kono
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
Recommandé
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Kengo Suzuki
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
Takehara Ryo
僕がAndroid開発する時にちょっと便利だと思うtips
僕がAndroid開発する時にちょっと便利だと思うtips
Masataka Kono
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
Android Dev Tools Knowledge
Android Dev Tools Knowledge
Shinobu Okano
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法
Keisuke Yamaguchi
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
shouta yoshikai
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome
お気に入り拡張機能
お気に入り拡張機能
SatsukiYabu
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
Hiroyuki Ohnaka
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Dockerで楽しむ自宅サーバ
Dockerで楽しむ自宅サーバ
祐磨 堀
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
Wataru NOGUCHI
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
Yutaka Kato
VS Code新機能紹介2020-2021
VS Code新機能紹介2020-2021
Yuki Ueda
GitLab Prometheus
GitLab Prometheus
Shingo Kitayama
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
l_b__
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
楽しいGit外部公開用
楽しいGit外部公開用
CROOZ, inc.
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
SCM, CI and Maven Repo
SCM, CI and Maven Repo
Hideaki Ishijima
Contenu connexe
Tendances
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
Android Dev Tools Knowledge
Android Dev Tools Knowledge
Shinobu Okano
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法
Keisuke Yamaguchi
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
shouta yoshikai
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome
お気に入り拡張機能
お気に入り拡張機能
SatsukiYabu
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
Hiroyuki Ohnaka
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Dockerで楽しむ自宅サーバ
Dockerで楽しむ自宅サーバ
祐磨 堀
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
Wataru NOGUCHI
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
Yutaka Kato
VS Code新機能紹介2020-2021
VS Code新機能紹介2020-2021
Yuki Ueda
GitLab Prometheus
GitLab Prometheus
Shingo Kitayama
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
l_b__
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
楽しいGit外部公開用
楽しいGit外部公開用
CROOZ, inc.
Tendances
(20)
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Android Dev Tools Knowledge
Android Dev Tools Knowledge
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
ネットワークの切り替えを感知する方法
ネットワークの切り替えを感知する方法
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
お気に入り拡張機能
お気に入り拡張機能
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
Dockerで楽しむ自宅サーバ
Dockerで楽しむ自宅サーバ
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
VS Code新機能紹介2020-2021
VS Code新機能紹介2020-2021
GitLab Prometheus
GitLab Prometheus
Eclipseを使ったandroid nativeデバッグ
Eclipseを使ったandroid nativeデバッグ
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
楽しいGit外部公開用
楽しいGit外部公開用
Similaire à Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
Soichiro Kashima
SCM, CI and Maven Repo
SCM, CI and Maven Repo
Hideaki Ishijima
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Kazumi IWANAGA
Android studio で行ってみよう!!
Android studio で行ってみよう!!
Kazuaki Ueda
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
Yuki Anzai
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Sunao Komuro
Android Studioの魅力
Android Studioの魅力
Keiji Ariyama
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
mokelab
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
techtalkdwango
GitHub Copilotとともに次の開発体験へ
GitHub Copilotとともに次の開発体験へ
Kazumi IWANAGA
Android Hacks - Hack40
Android Hacks - Hack40
Masanori Ohkawara
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
Kazumi IWANAGA
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
R S
Android0422
Android0422
takahiko_takahashi
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
祐磨 堀
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
Kazumi IWANAGA
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
Similaire à Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
(20)
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
SCM, CI and Maven Repo
SCM, CI and Maven Repo
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Android studio で行ってみよう!!
Android studio で行ってみよう!!
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
「Android アプリのガチ開 発者が Mobile Backend Starter を使ってみた」
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Android Studioの魅力
Android Studioの魅力
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
GitHub Copilotとともに次の開発体験へ
GitHub Copilotとともに次の開発体験へ
Android Hacks - Hack40
Android Hacks - Hack40
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
GitHub最新情報キャッチアップ 2023年6月
GitHub最新情報キャッチアップ 2023年6月
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
GitLab から GitHub + CircleCI に乗り換えてチーム運用を改善しつつある話
Android0422
Android0422
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
日々の開発フローにプラスする GitHub Actions ~ セキュリティ対策を取り込む
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
Plus de Yu Nobuoka
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
GIF と LZW 圧縮と GifWriter.js
GIF と LZW 圧縮と GifWriter.js
Yu Nobuoka
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Yu Nobuoka
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
Yu Nobuoka
Plus de Yu Nobuoka
(8)
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
GIF と LZW 圧縮と GifWriter.js
GIF と LZW 圧縮と GifWriter.js
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
WebSocket Protocol と Plack::Middleware::WebSocket
WebSocket Protocol と Plack::Middleware::WebSocket
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
1.
2015-11-30 関西モバイルアプリ研究会 #8 Android アプリ Jenkins
でビルドして GitHub に “リリース” を作る id:nobuoka 株式会社はてな
2.
自己紹介と前置き ● id:nobuoka Android
アプリ開発 Windows アプリ開発 サーバーサイド (Scala) ● 今日 : CI・ビルド周りの話 最終的な目的 : GitHub にリリースを作る ビルドシステム周りの基本的な話
3.
やりたいこと ● Jenkins 上でビルドして
GitHub に “リリー ス” を作って APK ファイルをアップロード Gradle 上で APK ファイルを扱う
4.
なんで? ● リリースフローを自動化したい →
Jenkins 手元ビルドだとクラッシュする APK ができる ことがある ● 過去のリリースを振り返りやすくする → GitHub のリリース機能 過去バージョンでのリリース内容を見たり、実 際にその時の APK を使ったりしやすくしたい
5.
Android のビルドシステム :
Gradle ● Android アプリの標準のビルドシステム Android Studio でサポート ● Java 界隈のビルドシステム ● Groovy による DSL ● Android Gradle Plugin により Android ア プリをビルド可能に
6.
Build Variants ● Android
Gradle plugin の機能 ● Product flavors × Build types ● ビルドに種類があって名前がついてるという話 今回のスライドで重要なのはこれだけ “productionRelease” とか “previewDebug とか”
7.
APK パッケージへの署名 ● パスワードは
Gradle プロパティにする android { signingConfigs { release { storeFile file("your.key") storePassword project.getProperties().get("storePassword") keyAlias "yourAlias" keyPassword project.getProperties().get("keyPassword") } } buildTypes { release { signingConfig signingConfigs.release
8.
Gradle 上で APK
パッケージを扱う ● android.applicationVariants から find で指定の build variant を取得 → Assemble タスクや出力ファイルの情報 // 別 project からでも扱える。 Project appProject = project(':app') def targetVariant = appProject.android.applicationVariants. find { it.name == "productionRelease" } def assembleTask = targetVariant.assemble def outputs = targetVariant.outputs
9.
Assemble タスクに依存するタスクの定義 ● APK
ファイルを操作するなら assemble タス クに依存させる task putRelease, dependsOn: assembleTask << { String versionName = targetVariant.versionName String versionCode = targetVariant.versionCode String title = "Version ${versionName} (${versionCode})" MyGheClient gheClient = new MyGheClient() gheClient.setOAuth2Token(gheOAuth2Token) // ここでリリースの作成や APK ファイルのアップロードをする。 // (後述) }
10.
GitHub に “リリース”
を作成する機能 ● GitHub Java API を拡張 (Groovy は楽) buildscript { repositories { mavenCentral() } dependencies { classpath 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5' }} class MyGheClient extends GitHubClient { public MyGheClient() { super("ghe.example.com") } Map<String, Object> createGheRelease(String name, String versionName) { def release = [ "tag_name": "v" + versionName, "target_commitish": "master", "name": name, "body": "Description of the release", "draft": true, "prerelease": false ] (Map<String, Object>) post("/repos/{team}/{repo}/releases", release, Map) } }
11.
“リリース” 作成実行 MyGheClient gheClient
= new MyGheClient() gheClient.setOAuth2Token(gheOAuth2Token) def release = gheClient.createGheRelease(title, versionName) ● リリース用のファイルアップロードも似たよう な感じで実装しよう!
12.
Jenkins で実行 export ANDROID_HOME=/Users/steve/.jenkins/tools/android-sdk ./gradlew
-PstorePassword="${STORE_PASSWORD}" -PkeyPassword="${KEY_PASSWORD}" -PgheOAuth2Token="${GHE_OAUTH_2_TOKEN}" clean putRelease
13.
おわり ● 署名した APK
ファイルを作るのは Android Gradle plugin の機能でできる パスワードは Gradle プロパティとして渡す ● Assemble タスクに依存したアップロードタ スクを定義して Jenkins で実行 Build variants の扱いが特殊 Groovy なので API 叩くの楽
Télécharger maintenant