Explorar el Código

feat(ci): add Android test workflow (#5661)

Lucas Fernandes Nogueira hace 2 años
padre
commit
be808a9f5c
Se han modificado 1 ficheros con 90 adiciones y 0 borrados
  1. 90 0
      .github/workflows/test-mobile.yml

+ 90 - 0
.github/workflows/test-mobile.yml

@@ -0,0 +1,90 @@
+name: test mobile
+
+on:
+  pull_request:
+    paths:
+      - '.github/workflows/test-mobile.yml'
+      - 'tooling/cli/templates/mobile/**'
+  workflow_dispatch:
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  test-android:
+    runs-on: ${{ matrix.platform }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        platform: [ubuntu-latest, macos-latest, windows-latest]
+
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: install Rust stable
+        uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          override: true
+
+      - name: install Linux dependencies
+        if: matrix.platform == 'ubuntu-latest'
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0
+
+      - name: setup node
+        uses: actions/setup-node@v3
+        with:
+          node-version: 16
+          cache: yarn
+          cache-dependency-path: |
+            tooling/api/yarn.lock
+            examples/api/yarn.lock
+
+      - uses: actions/setup-java@v3
+        with:
+          distribution: temurin
+          java-version: 11
+          cache: gradle
+
+      - name: Setup NDK
+        uses: nttld/setup-ndk@v1
+        id: setup-ndk
+        with:
+          ndk-version: r25b
+          local-cache: true
+
+      - uses: Swatinem/rust-cache@v2
+        with:
+          workspaces: |
+            tooling/cli
+            examples/api/src-tauri
+
+      - name: build CLI
+        uses: actions-rs/cargo@v1
+        with:
+          command: build
+          args: --manifest-path ./tooling/cli/Cargo.toml
+
+      - name: build Tauri API
+        working-directory: ./tooling/api
+        run: yarn && yarn build
+
+      - name: install API example dependencies
+        working-directory: ./examples/api
+        run: yarn
+
+      - name: Init Android Studio Project
+        working-directory: ./examples/api
+        run: ../../tooling/cli/target/debug/cargo-tauri android init
+        env:
+          NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
+
+      - name: Build apk
+        working-directory: ./examples/api
+        run: ../../tooling/cli/target/debug/cargo-tauri android build
+        env:
+          NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}