Skip to content

Fix CI build with core #4919

Fix CI build with core

Fix CI build with core #4919

Workflow file for this run

name: OpenDocument-Reader-Android
on:
workflow_dispatch:
push:
paths-ignore:
- '**.md'
- '.github/**'
- '!.github/workflows/android_main.yml'
branches:
- main
pull_request:
paths-ignore:
- '**.md'
- '.github/**'
- '!.github/workflows/android_main.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v3
- name: ninja
run: sudo apt-get install -y ninja-build
- name: java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: set up python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: install pip and conan
run: python -m pip install --upgrade pip conan==1.*
- name: checkout odr.core
uses: actions/checkout@v3
with:
repository: opendocument-app/OpenDocument.core
ref: v3.0.0
path: OpenDocument.core
- name: conan
run: conan export OpenDocument.core odrcore/3.0.0@
- name: remove odr.core
run: rm -rf OpenDocument.core
- run: ./gradlew assembleDebug lintProDebug lintLiteDebug --stacktrace
- uses: actions/upload-artifact@v3
with:
name: APKs
path: app/build/outputs/apk/**/*.apk
if-no-files-found: error
- uses: actions/upload-artifact@v3
with:
name: lint-report
path: app/build/reports/lint-results-*.html
if-no-files-found: error
test:
runs-on: macos-11
strategy:
fail-fast: false
# Make sure the matrix here and in cache_AVD_images.yml is the same
matrix:
include:
# Oldest version we support
- arch: x86
api-level: 19
# Oldest x86_64
- arch: x86_64
api-level: 21
- arch: x86_64
api-level: 29
# API-30+ tests are failing because play services init something something
# - arch: x86
# api-level: 30
# API-32+ tests are failing because storage permissions something something
# - arch: x86_64
# api-level: 32
steps:
- name: checkout
uses: actions/checkout@v3
- name: java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: brew
run: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
- name: fix ninja install
run: rm '/usr/local/bin/2to3'
- name: ninja
run: brew install ninja
# https://stackoverflow.com/a/57758679/198996
- name: bundler
run: gem install bundler:1.17.3
- name: fastlane
run: bundle install
- name: pip
run: python3 -m ensurepip
- name: conan
run: pip3 install --upgrade conan==1.*
- name: checkout odr.core
uses: actions/checkout@v3
with:
repository: opendocument-app/OpenDocument.core
ref: v3.0.0
path: OpenDocument.core
- name: conan
run: conan export OpenDocument.core odrcore/3.0.0@
- name: remove odr.core
run: rm -rf OpenDocument.core
- name: Android Virtual Device (AVD) cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.arch }}-${{ matrix.api-level }}
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: ${{ matrix.arch }}
target: google_apis
sdcard-path-or-size: 1G
disk-size: 8G
script: echo "Generated AVD snapshot for caching."
- name: Run tests
uses: reactivecircus/android-emulator-runner@v2
with:
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save
api-level: ${{ matrix.api-level }}
arch: ${{ matrix.arch }}
target: google_apis
sdcard-path-or-size: 1G
disk-size: 8G
script: |
mkdir -p testResults/screenshots
adb logcat > testResults/logcat.txt &
adb shell screencap /data/local/tmp/beforeTests.png
adb pull /data/local/tmp/beforeTests.png testResults/screenshots/
bundle exec fastlane tests || touch sorry_but_tests_are_failing
adb pull /sdcard/Pictures/screenshots testResults/ || true
adb shell screencap /data/local/tmp/afterTests.png
adb pull /data/local/tmp/afterTests.png testResults/screenshots/
mv app/build/reports/androidTests/connected testResults/
mv app/build/outputs/androidTest-results testResults/
test ! -f sorry_but_tests_are_failing
- uses: actions/upload-artifact@v3
if: always()
with:
name: testResults-${{ matrix.api-level }}-${{ matrix.arch }}
path: testResults
if-no-files-found: error