ExactCalculator: Add GitHub Actions

Co-authored-by: Luca Stefani <luca.stefani.ge1@gmail.com>
Co-authored-by: Sebastiano Barezzi <seba@sebaubuntu.dev>
Co-authored-by: Tom Powell <tom@powell.io>
Change-Id: I425de19a19a300bc7939a5f8b46f93f4d83f1a2b
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..e1883d6
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,14 @@
+name: build
+
+on: [push, pull_request, workflow_dispatch]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    steps:
+    - name: Checkout repo
+      uses: actions/checkout@v3
+
+    - name: Build
+      uses: ./.github/workflows/build
diff --git a/.github/workflows/build/action.yml b/.github/workflows/build/action.yml
new file mode 100644
index 0000000..9e9501b
--- /dev/null
+++ b/.github/workflows/build/action.yml
@@ -0,0 +1,29 @@
+name: build
+
+runs:
+    using: composite
+
+    steps:
+    - name: Setup JDK 17
+      uses: actions/setup-java@v3
+      with:
+        distribution: 'zulu'
+        java-version: 17
+
+    - name: Build with Gradle
+      shell: bash
+      run: ./gradlew assembleDebug
+
+    - name: Generate Android.bp
+      shell: bash
+      run: |
+        ./gradlew generateBp
+        if [[ ! -z $(git status -s) ]]; then
+          git status
+          exit -1
+        fi
+
+    - uses: actions/upload-artifact@v3
+      with:
+        name: ExactCalculator-debug.apk
+        path: build/outputs/apk/debug/ExactCalculator-debug.apk
diff --git a/.github/workflows/gerrit.yml b/.github/workflows/gerrit.yml
new file mode 100644
index 0000000..4a6c449
--- /dev/null
+++ b/.github/workflows/gerrit.yml
@@ -0,0 +1,30 @@
+name: gerrit checks
+
+on:
+  workflow_dispatch:
+    inputs:
+      ref:
+        type: string
+      gerrit-ref:
+        type: string
+      change:
+        type: string
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: lineageos-infra/fetch-gerrit-change@main
+      with:
+        gerrit-ref: ${{ inputs.gerrit-ref }}
+        ref: ${{ inputs.ref }}
+
+    - name: Build
+      uses: ./.github/workflows/build
+
+    - uses: lineageos-infra/gerrit-vote@main
+      if: always()
+      with:
+        auth: ${{ secrets.GERRIT_VOTE_CREDS }}
+        change: ${{ inputs.change }}
+        ref: ${{ inputs.ref }}