15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初めてGithub ActionsでCIとやらをやってみた

Last updated at Posted at 2021-10-10

#CIとは?
そもそもCIとは何なのでしょうか。正直私も今回初めてCIを扱うので腑に落ちる理解はできていませんが、すごく簡単にいうと自動的にアプリが正常かどうかチェックしてくれるシステムかなと考えています。

#GitHub Actionsを利用してCIをセットアップできる
CIを行うには様々なツールが存在するみたいですが、Github Actionsを利用すると他のCIツールと同じようにプッシュやプルリクなどの操作をトリガーにして処理を実行させることができます。

#セットアップしてみよう
CIを導入したいプロジェクトのリポジトリに行くと画面上部にActionsというタブ?があるのでそれをクリックします。

これをクリックするとワークフローをセットアップしようねみたいな画面が出てくるのでその中から自分が作成したプロジェクトの言語と一致するものを選びましょう。今回はAndroidなので以下のカードのSet up this workflowを選択すればOKです。

このボタンを押下すると以下のような画面が出てくるので、このエディタみたいな部分にワークフローを記述していきます。ワークフローとは何をトリガーにして処理を実行させるかなどのルールのことを意味します。

#ワークフローを記述しよう
今回は以下のように書きました。

ci.yml
name: CI

on:
  push:
    branches:
      - main
    paths-ignore:
      - docs/**
      - README.md
      - LICENSE
  pull_request:
    branches:
      - main
    paths-ignore:
      - docs/**
      - README.md
      - LICENSE

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    # チェックアウト
    - uses: actions/checkout@v2

    # JDKのセットアップ
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        distribution: 'zulu'
        java-version: '11'

    # Gradleのキャッシュ復元
    - uses: actions/cache@v2
      with:
        path: ~/.gradle/caches
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
        restore-keys: |
          ${{ runner.os }}-gradle-

    # 依存関係の出力
    - name: Displays the Android dependencies of the project
      run: ./gradlew androidDependencies

    # コンパイル
    - name: Run Compile
      run: ./gradlew assembleDebug
      
  test:
    runs-on: ubuntu-latest
    steps:
    # チェックアウト
    - uses: actions/checkout@v2

    # JDKのセットアップ
    - name: set up JDK 11
      uses: actions/setup-java@v2
      with:
        distribution: 'zulu'
        java-version: '11'

    # Gradleのキャッシュ復元
    - uses: actions/cache@v2
      with:
        path: ~/.gradle/caches
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
        restore-keys: |
          ${{ runner.os }}-gradle-

    # テスト
    - name: Test with Gradle
      run: ./gradlew test --stacktrace
        
  lint:
    runs-on: ubuntu-latest
    steps:
    # チェックアウト
    - uses: actions/checkout@v2

    # 静的解析
    - name: Run Inspection
      run: ./gradlew lint

    # 結果の表示
    - uses: yutailang0119/action-android-lint@v1
      with:
        xml_path: '**/build/reports/lint-results-*.xml'

    # アーティファクトへアップロード
    - name: Upload results Artifact
      uses: actions/upload-artifact@v2
      if: success() || failure()
      with:
        name: results
        path: |
          **/build/reports/lint-results-*.html
          **/build/reports/lint-results-*.xml
        if-no-files-found: error
        retention-days: 14

こんな感じになっていれば、成功です

参考記事です:
GitHub ActionsでAndroidアプリのCIを構築する方法

15
9
1

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
15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?