2021-09-01 16:42:08 +02:00
name : Sanity Test
on :
2021-11-08 16:11:25 +01:00
schedule :
# At 20:00 every day UTC
- cron : '0 20 * * *'
2021-09-01 16:42:08 +02:00
2021-09-08 13:03:51 +02:00
# Enrich gradle.properties for CI/CD
env :
CI_GRADLE_ARG_PROPERTIES : >
2022-02-11 16:28:16 +01:00
-Porg.gradle.jvmargs=-Xmx4g
2021-09-08 13:03:51 +02:00
-Porg.gradle.parallel=false
2021-09-01 16:42:08 +02:00
jobs :
integration-tests :
name : Sanity Tests (Synapse)
2021-11-08 16:14:18 +01:00
runs-on : macos-latest
2021-09-01 16:42:08 +02:00
strategy :
fail-fast : false
matrix :
2022-02-11 16:28:16 +01:00
api-level : [ 28 ]
2021-09-01 16:42:08 +02:00
steps :
- uses : actions/checkout@v2
2021-11-08 16:11:25 +01:00
with :
ref : develop
2021-09-01 16:42:08 +02:00
- name : Set up Python 3.8
uses : actions/setup-python@v2
with :
python-version : 3.8
- uses : actions/cache@v2
with :
path : |
~/.gradle/caches
~/.gradle/wrapper
key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys : |
${{ runner.os }}-gradle-
- name : Start synapse server
run : |
2022-02-23 16:58:05 +01:00
pip install matrix-synapse
2021-11-08 16:18:29 +01:00
curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh \
| sed s/127.0.0.1/0.0.0.0/g | sed 's/http:\/\/localhost/http:\/\/10.0.2.2/g' | bash -s -- --no-rate-limit
2021-11-08 16:14:18 +01:00
- uses : actions/setup-java@v2
with :
distribution : 'adopt'
java-version : '11'
2021-09-01 16:42:08 +02:00
- name : Run sanity tests on API ${{ matrix.api-level }}
uses : reactivecircus/android-emulator-runner@v2
with :
api-level : ${{ matrix.api-level }}
2022-02-11 16:28:16 +01:00
arch : x86
profile : Nexus 5X
force-avd-creation : false
emulator-options : -no -snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
2021-11-09 19:33:57 +01:00
emulator-build: 7425822 # workaround to emulator bug : https://github.com/ReactiveCircus/android-emulator-runner/issues/160
2021-11-09 18:44:49 +01:00
script : |
adb root
2021-11-09 19:33:57 +01:00
adb logcat -c
touch emulator.log
chmod 777 emulator.log
adb logcat >> emulator.log &
2022-02-18 15:38:22 +01:00
./gradlew $CI_GRADLE_ARG_PROPERTIES -PallWarningsAsErrors=false connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest || (adb pull storage/emulated/0/Pictures/failure_screenshots && exit 1 )
2022-02-11 16:28:16 +01:00
- name : Upload Test Report Log
2021-11-09 19:33:57 +01:00
uses : actions/upload-artifact@v2
2022-02-18 15:38:22 +01:00
if : always()
2021-11-09 19:33:57 +01:00
with :
name : sanity-error-results
path : |
emulator.log
2022-02-11 16:28:16 +01:00
failure_screenshots/
2022-02-23 11:20:57 +01:00
notify :
runs-on : ubuntu-latest
needs : integration-tests
if : always()
steps :
- uses : michaelkaye/matrix-hookshot-action@v0.2.0
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
matrix_access_token : ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
matrix_room_id : ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
text_template : "Sanity test run: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}} {{html_url}}{{/if}}{{/with}}{{/each}}"
html_template : "CI Sanity test run results: {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a>{{/if}}{{/with}}{{/each}}"