Android
 Computer >> コンピューター >  >> システム >> Android

GitHub アクションを使用して Android アプリ開発を自動化する方法

私たちが毎日しなければならない多くの反復的なタスクがあります。そして、それらは少し退屈で、難しく、単調である可能性があります.

しかし、これらの毎日のタスクに労力を費やす代わりに、誰かまたは他の誰かがあなたのためにそれらを行うように委任することができます.そうすれば、やりたいことに時間を割くことができます。リラックスする時間を持つことができます。

Android アプリケーションを開発したことがある場合は、一部のタスクがいかに面倒であるかをご存知でしょう。

  • テストの実行
  • 新しいコードをマージするときにアプリケーションが確実にコンパイルされるようにする
  • アプリケーションの構築と公開

では、これらのタスクを誰に引き継ぐべきでしょうか?別の同僚?彼らはそれを他の誰かに渡すことができ、誰の時間も解放しません.さらに、同僚を疲れさせたくありません。解決策は?

GitHub Actions にようこそ。 👐

GitHub アクションとは?

GitHub アクションは、リポジトリで何かが発生したときにトリガーできるコマンドです。基本的に、アクションは以下を説明するコマンドのリストを含む構成ファイルです。

  • 必要なこと
  • それがいつ起こるべきか

この構成ファイルは YAML 形式 (.yml) で、例は次のようになります:

name: My GitHub Action

on: pull_request

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

上記の例を分解してみましょう:

<オール>
  • アクションに名前を付けます (My GitHub Action) [オプション]
  • このアクションをいつ実行するかを示します (プル リクエストが開かれたとき)
  • このアクションがトリガーされると実行されるタスク (ジョブ) のリストを開始します
  • 最初のものは ビルド です アクション
  • ランオン コマンドは、このジョブを実行するランナーを GitHub に指示します (これは仮想サーバーであり、Windows/Mac/Linux から選択できます)
  • 各ジョブには、ステップによってグループ化された多くのフェーズがあります。 キーワード
  • 用途 キーワードは、実行するアクションをスクリプトに指示します
  • これは非常に短い例であり、GitHub Actions のすべての機能を紹介しているわけではありませんが、構成ファイルの構造を垣間見ることができます。

    次のセクションでは、開発サイクルを効率的かつ効果的に保つのに役立つアクションを作成します。

    すべての GitHub Actions ファイルは、パス内のプロジェクトのメイン フォルダーの下に存在する必要があることに注意してください .github/ワークフロー :

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    プル リクエスト用の GitHub アクションを作成する方法

    単独でプロジェクトに取り組んでいる場合でも、チームの一員として取り組んでいる場合でも、アプリケーションが安定していることを確認することは非常に重要です。そのため、プル リクエストのマージを検討するときはいつでも、アプリケーションが適切にコンパイルされ、すべてのテストがパスしていることを確認することは非常に理にかなっています。

    例では、リポジトリ内のコードをチェックアウトする方法を既に示しました。このアクションには、次の手順が含まれます。

    <オール>
  • JDK バージョンの設定
  • 仮想環境の権限を変更する
  • テストの実行 (ある場合)
  • アプリケーションの構築
  • name: Android Build
    
    on: pull_request
    
    jobs:
      build:
    
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v1
    
          - name: Set Up JDK              // 1
            uses: actions/setup-java@v1
            with:
              java-version: 1.8
    
          - name: Change wrapper permissions  // 2
            run: chmod +x ./gradlew
    
          - name: Run Tests                   // 3
            run: ./gradlew test
    
          - name: Build Project               // 4
            run: ./gradlew assemble

    上記のように、各ステップには固有のプロパティと属性があります。

    ドキュメントを参照して自分で行うことができるため、それぞれについては説明しません。ほとんどのステップで共通しているのは、実行です。 キーワード。この属性は、実行するコマンドを示します。

    ✋ 仮想環境で gradle コマンドを実行できるようにするには、2 番目のステップが必要です。それがなければ、それはできません。

    アプリケーションを公開するための GitHub アクションを作成する方法

    アプリケーションを初めて公開すると、それを再公開するのは雑用のようになります。

    バージョンがアップグレードされていることを確認し、APK をビルドし、Google Play コンソールを介して送信し、その他の面倒な作業を行う必要があります。

    このプロセスは、別の GitHub アクションで自動化できます。このアクションは、GitHub シークレットを使用する必要があるため、前のアクションよりも少し複雑です。

    簡単に言えば、GitHub シークレットは機密情報をリポジトリの環境変数として保存する方法です。以下の理由により、それらを使用する必要があります:

    <オール>
  • 申請書に署名する必要があります
  • 作成したアプリケーションを Google Play ストアに送信する権限をこのアクションに付与します
  • まず、GitHub シークレットを作成する方法を見てみましょう。

    • リポジトリのメイン ページで、[設定] をクリックします。 タブ
    GitHub アクションを使用して Android アプリ開発を自動化する方法
    • 左側のメニューに、Secrets というタイトルのオプションがあります。
    GitHub アクションを使用して Android アプリ開発を自動化する方法
    • シークレットを作成するには、新しいリポジトリ シークレットを押します ボタン
    GitHub アクションを使用して Android アプリ開発を自動化する方法

    これで問題が解決したので、アプリケーションを公開するためのスクリプトを見てみましょう:

    name: Android Publish
    
    on:
      workflow_dispatch:
    
    jobs:
      build:
    
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v1
    
          - name: Set Up JDK
            uses: actions/setup-java@v1
            with:
              java-version: 1.8
    
          - name: Change wrapper permissions
            run: chmod +x ./gradlew
    
          - name: Run Tests
            run: ./gradlew test
    
          - name: Build Project
            run: ./gradlew build
    
          - name: Build Release AAB      // 1
            run: ./gradlew bundleRelease
    
          - name: Sign AAB               // 2
            uses: r0adkll/sign-android-release@v1
            with:
              releaseDirectory: app/build/outputs/bundle/release
              signingKeyBase64: ${{ secrets.SIGN_KEY }}
              alias: ${{ secrets.ALIAS }}
              keyStorePassword: ${{ secrets.STORE_KEY_PASSWORD }}
              keyPassword: ${{ secrets.KEY_PASSWORD }}
    
          - name: Deploy to Play Store   // 3
            uses: r0adkll/upload-google-play@v1
            with:
              serviceAccountJsonPlainText: ${{secrets.SERVICE_ACCOUNT}}
              packageName: com.tomerpacific.laundry
              releaseFiles: app/build/outputs/bundle/release/app-release.aab
              track: production

    このアクションは workflow_dispatch で実行されることに気付いたかもしれません .どういう意味ですか?基本的に、このアクションは GitHub 自体から手動でトリガーできます。

    もちろん、メイン ブランチでプッシュが発生したときに、このアクションを実行することを決定することもできます (たとえば)。

    上記のスニペットで 1 とマークされたステップは、アプリケーションの .aab の構築をトリガーします。次に、Android Studio 内でビルドする場合と同様に、この .aab ファイルに署名する必要があります。

    GitHub シークレットが登場するのはこれが初めてです。次のシークレットを作成する必要があります:

    • 署名鍵 (secrets.SIGN_KEY)
    • キー エイリアス (secrets.ALIAS)
    • ストア キーのパスワード (secrets.STORE_KEY_PASSWORD)
    • 鍵のパスワード (secrets.KEY_PASSWORD)

    .aab ファイルに署名したら、Google Play ストアに展開できます。この GitHub アクションに、Google Play にアプリケーションをデプロイする権限を許可する必要があるため、このステップではもう少し作業が必要です。しかし、ちょっと待ってください。サービス アカウントを使用します。

    サービス アカウントの作成方法

    サービス アカウントとは、やり取りするサービスやアプリケーションに、あなたに代わって動作していることを伝えるために作成するエンティティです。

    この場合、GitHub アクションは Google Play ストアとやり取りして、アプリケーションの新しいバージョンをアップロードできるようにします。

    サービス アカウントを作成するには、Google Cloud Console に移動します。そこにアカウントがない場合は、必ず作成してください。次に、メイン ページの左側のメニューに、[サービス アカウント] というタイトルのリスト項目があります。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    クリックすると、ウィンドウの右側に、既に持っているサービス アカウントが表示されます。

    新しいものを作成したいのですが、ウィンドウの上部にそれを行うためのボタンがあります。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    開いたウィンドウで、サービスの名前を入力する必要があり、説明も入力できます。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    ここで指定する名前は、このサービス アカウントの一意の識別子になります。

    2 番目のステップでは、このサービス アカウントにロールを付与するよう求められます。 役割の選択 から ドロップダウンで、[基本] → [エディタ] を選択します。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    最後に、3 番目のステップで、「ユーザーにこのサービス アカウントへのアクセスを許可する」セクションの下の両方の場所にメールを入力します。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    完了ボタンを押した後、このサービス アカウントのキーを作成する必要があります。アクションは、このキーを使用して Google Play によって識別されます。

    キーを作成するには、サービス アカウントのメイン画面の [アクション] ラベルの下にある 3 つの水平ドットをクリックします。表示されるメニューで、[鍵の管理] を選択します .

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    このウィンドウで、[新しいキー] を選択してキーを作成します ボタンをクリックし、表示されるメニューから [新しいキーを作成] を選択します。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    ここで、新しいキーの形式を選択するオプションがあります。デフォルトは JSON で、選択したままにします。 [作成] をクリックします。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    完了すると、ファイルがコンピュータにダウンロードされます。このファイルにはサービス アカウントに関連するすべてのデータが含まれており、再度ダウンロードすることはできません。

    このファイルの内容を取得し、それを使用して GitHub シークレットを作成します (secrets.SERVICE_ACCOUNT ).

    最後になりましたが、Google Play にこのサービス アカウントを認識させる必要があります。これを行うには、Google Play コンソール アカウントにログインし、セットアップ → API アクセス に移動する必要があります。 .

    ページを下にスクロールすると、「サービス アカウント」というタイトルのセクションが表示されます。以前に作成したサービス アカウントが表示されるはずです。 [アクセスを許可] リンクをクリックします

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    開いた設定で、アプリの権限に進みます。ここで、このサービス アカウントがやり取りするアプリケーションを選択します。

    [アカウントの権限] の下の リリース の下のすべて セクションをチェックする必要があります。他のすべての設定を見て、何をチェックしたままにするか、何をオフにするかを自分で決めることを強くお勧めします.

    完了したら、[ユーザーを招待] をクリックします。 ボタンをクリックします。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    招待状が送信されたら、ストアへの公開アクションを実行できます。

    GitHub でのアクションを監視する方法

    リポジトリに定義されているアクションを確認するには、[アクション] タブをクリックします。このタブには、定義されたすべてのワークフローと既に実行されているワークフローが表示されます。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    左側には定義済みのすべてのアクションが表示され、右側には実行されたすべてのアクションが表示されます。特定のアクションを見たい場合は、それをクリックしてください。

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    アクションが workflow_dispatch で実行されるように定義されている場合 、実行できるボタンが表示されます(上の図のように)。

    ワークフローの特定の実行を確認したい場合は、実行の 1 つをクリックしてメインの [ワークフロー] ページから確認することもできます。アクションの 1 つが実行に失敗した場合、ここで調査を行い、何が問題なのかを確認します。

    最初のアクションは、プル リクエストが開かれたときにトリガーされるはずです。正常に動作する場合は、次のように表示されます:

    GitHub アクションを使用して Android アプリ開発を自動化する方法

    まとめ

    ここまで長々と読みましたが、アプリケーションの継続的インテグレーションと継続的デプロイ パイプラインの作成を開始するために必要なすべてのことを説明しました。

    GitHub Actions がどのように設定されているかを知りたい場合は、こちらのリポジトリの 1 つで確認できます:

    Actions · TomerPacific/LaundrySymbolsKotlin で書かれたアプリケーションで、さまざまなランドリー シンボルを説明付きで表示します:cyclone:- Actions · TomerPacific/LaundrySymbols GitHub アクションを使用して Android アプリ開発を自動化する方法 TomerPacificGitHub GitHub アクションを使用して Android アプリ開発を自動化する方法

    GitHub Actions の詳細については、こちらをご覧ください:

    GitHub Actions ドキュメント - GitHub DocsGitHub Actions を使用して、リポジトリ内でソフトウェア開発ワークフローを自動化、カスタマイズ、および実行します。アクションを発見、作成、共有して、CI/CD を含む任意のジョブを実行し、完全にカスタマイズされたワークフローでアクションを組み合わせることができます。 GitHub アクションを使用して Android アプリ開発を自動化する方法 GitHub ドキュメント GitHub アクションを使用して Android アプリ開発を自動化する方法
    1. IFTTTを使用してAndroid携帯を自動化する方法

      ご存じない方のために説明すると、IFTTTは「IfThisThenThat」の略です。これはWebベースのサーフェスであり、さまざまなサービスを条件付きステートメントでチェーン化できるため、この名前が付けられています。アプレットと呼ばれる結果により、強力な機能を作成できます。 IFTTTはウェブベースのサービスかもしれませんが、Androidで利用可能であり、スマートホームサービスと統合されています。これにより、多くの機能が文字通り手のひらに収まります。独自のアプレットを作成することもできますが、Androidの既存の最良の例のリストをまとめました。 アラームで色相ライトをオンにする 朝の

    2. Android に Edge をインストールして使用する方法

      Microsoft の Edge には、既定のブラウザーを快適に使用できるようにする機能が満載です。現在は廃止された Internet Explorer の使用に勝るものはありません。 そして、あなたがファンなら、Edge エクスペリエンスをスマートフォンに持ち込むのは良い考えかもしれません.この記事では、まさにそれを見ていきます。最初に、Android に Edge ブラウザーをインストールする方法について説明し、次に Edge ブラウザーを最大限に活用する方法について説明します。 それでは始めましょう。 Android に Edge をインストールする方法 Google、Facebo