Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
bc5728d
Version bump.
tamaskozmer Mar 23, 2026
8b12662
Version bump.
tamaskozmer Mar 23, 2026
fae7557
Fix token handling in e2e tests according to new login flow. (#3600)
kdeakinstructure Mar 23, 2026
5c07829
Fix token handling in e2e tests according to new login flow. (#3600)
kdeakinstructure Mar 23, 2026
c2a0a6f
Exclude failing login test
tamaskozmer Mar 23, 2026
cd5f5c4
Fix token handling in e2e tests according to new login flow. (#3600)
kdeakinstructure Mar 23, 2026
92883f8
[MBL-19864][All] - Fix New Login UI changes in E2E tests (#3602)
kdeakinstructure Mar 24, 2026
4718ad8
Revert "Exclude failing login test"
tamaskozmer Mar 24, 2026
be64509
[MBL-19864][All] - Fix New Login UI changes in E2E tests (#3602)
kdeakinstructure Mar 24, 2026
f00ddab
[MBL-19864][All] - Fix New Login UI changes in E2E tests (#3602)
kdeakinstructure Mar 24, 2026
acb9b2a
[MBL-19869][Student][Parent] - Put some login e2e tests to the E2E su…
kdeakinstructure Mar 24, 2026
d5c7d64
Disable offline tests
tamaskozmer Mar 24, 2026
b777ed4
GraphQLClientModule fix
kristofnemere Mar 24, 2026
9d2e724
revert Disable offline tests
tamaskozmer Mar 24, 2026
071a248
Exclude offline e2e from release.
tamaskozmer Mar 24, 2026
2c8c205
GraphQLClientModule fix
kristofnemere Mar 24, 2026
1a969c2
GraphQLClientModule fix
kristofnemere Mar 24, 2026
0326544
[MBL-19817][Student] - Implement Document Scanner interaction tests (…
kdeakinstructure Mar 24, 2026
c58103f
Fix oauth url handling (#3601)
domonkosadam Mar 25, 2026
26b8761
GHA open source builds (#3608)
hermannakos Mar 26, 2026
1f2fd85
Fixed single use token issues in Parent Submission details webview
kristofnemere Mar 26, 2026
60570cc
Update README.md (#3610)
hermannakos Mar 27, 2026
11c6e40
[MBL-19849][Student] Fix widget reload (#3607)
hermannakos Mar 27, 2026
751c41b
[MBL-19639][Student] Display lock date in device timezone instead of …
hermannakos Mar 27, 2026
66870a9
Release Parent 4.11.0 (68)
tamaskozmer Mar 30, 2026
578f812
[MBL-19845][All] Fix inbox attachment upload UI stuck on screen rotation
kristofnemere Mar 31, 2026
532327c
Release Student 8.7.0 (290)
tamaskozmer Mar 31, 2026
a997e5c
[MBL-19871][All] Fix media attachments not appearing in Inbox
kristofnemere Mar 31, 2026
bd998c1
[MBL-19875][All] Add mobile_consent flag to auth session (#3612)
hermannakos Mar 31, 2026
1a90c2f
[MBL-19891][All] Fix wrong inbox toast message when marking conversat…
kristofnemere Apr 2, 2026
9ecc1dc
[MBL-19887][Student] Fix PDF submission view ANR and blank pages
kristofnemere Apr 2, 2026
5dc7273
[MBL-19894][Student] Fix dashboard course widget not showing all unre…
tamaskozmer Apr 2, 2026
ed48bef
Merge branch 'master' into merge-teacher-release-master
tamaskozmer Apr 7, 2026
d367d14
Removed ReleaseExclude annotations.
tamaskozmer Apr 7, 2026
df6c665
Merge pull request #3624 from instructure/merge-teacher-release-master
tamaskozmer Apr 7, 2026
04dac0c
Merge branch 'master' into merge-release-student
tamaskozmer Apr 7, 2026
df548b9
Merge branch 'master' into merge-release-parent
tamaskozmer Apr 7, 2026
cae2bba
[MBL-19889][Teacher] Fix SpeedGrader grading status showing Graded wh…
kristofnemere Apr 7, 2026
8d6e170
Merge pull request #3626 from instructure/merge-release-student
tamaskozmer Apr 7, 2026
70510ee
Merge pull request #3627 from instructure/merge-release-parent
tamaskozmer Apr 7, 2026
2410f4c
[MBL-19895][Student] Fix announcement unread badge not clearing after…
kristofnemere Apr 7, 2026
0a47617
Implement Discussion checkpoint notifications E2E test. (#3622)
kdeakinstructure Apr 7, 2026
10ba8ab
[All] Add missing pandata events (#3629)
hermannakos Apr 7, 2026
fc199e6
[MBL-19940][Student] Fix users being logged out when using multi-view
kristofnemere Apr 8, 2026
a2bd3e2
Version bump.
tamaskozmer Apr 8, 2026
d58b854
[MBL-19940][Student] Fix users being logged out when using multi-view
kristofnemere Apr 8, 2026
d23813c
Version bump.
tamaskozmer Apr 8, 2026
5568c59
[MBL-19940][Student] Fix users being logged out when using multi-view
kristofnemere Apr 8, 2026
a779485
[MBL-19897][All] Fix inbox list not refreshing after screen rotation …
kristofnemere Apr 8, 2026
51ea2d5
[MBL-16950][Student][Teacher] Implement E2E tests for Rubrics (#3619)
adamNagy56 Apr 9, 2026
aa3a188
Release Student 8.7.1 (291)
tamaskozmer Apr 9, 2026
2f1a541
Release Parent 4.11.1 (69)
tamaskozmer Apr 9, 2026
9a79d3e
Merge pull request #3638 from instructure/release/student
tamaskozmer Apr 13, 2026
b3fcda0
Merge pull request #3639 from instructure/release/teacher
tamaskozmer Apr 13, 2026
e6dd176
Merge pull request #3640 from instructure/release/parent
tamaskozmer Apr 13, 2026
b5a5da5
[MBL-19925][Student] NGC Module Extraction and Dashboard Navigation R…
tamaskozmer Apr 14, 2026
077c569
Fixed Parent build. (#3642)
tamaskozmer Apr 15, 2026
c193198
[MBL-19952][Student][Teacher] - Fix breaking E2E tests #3641
kdeakinstructure Apr 15, 2026
bc8c1e9
[MBL-19896][Student] Fix edge-to-edge Snackbar gap and offline indica…
kristofnemere Apr 16, 2026
bb98a65
[MBL-19956][Student] Add empty state to Course widget when no active …
kristofnemere Apr 17, 2026
9c91664
[MBL-19884][Parent] Implement E2E tests for Course Details Front Page…
adamNagy56 Apr 17, 2026
fb5d71e
Create separate util files for Custom Assertions, Custom Matchers and…
kdeakinstructure Apr 20, 2026
3c36c96
Create separate flank files for release test suites (e2e, interaction…
kdeakinstructure Apr 20, 2026
1f9e84d
GH Actions changes to load the new separate flank files in release pr…
kdeakinstructure Apr 20, 2026
e938487
[MBL-19898][Parent] Fix Assignment Details content overlapping naviga…
tamaskozmer Apr 21, 2026
24e71c8
[MBL-19920][Student] Auto-refresh Forecast widget when a submission i…
kristofnemere Apr 21, 2026
173ac5b
[MBL-19918][All] Fix transparent status bar on Calendar filters scree…
tamaskozmer Apr 21, 2026
0361b04
[MBL-19923][Student] Fix status bar icon color on Inbox Compose, Edit…
tamaskozmer Apr 21, 2026
7b461fb
[MBL-19921][Student] Fix back button and course name overlap in Cours…
kristofnemere Apr 21, 2026
ca8f8e2
[CLXR-347][Horizon] IgniteAI refactor (#3605)
domonkosadam Apr 22, 2026
6f62c59
Refactor and Add E2E tests in the AssignmentE2ETest both in the Stude…
adamNagy56 Apr 22, 2026
05b1370
[MBL-19919][Student] Fix WebView keyboard covering content in Discuss…
tamaskozmer Apr 22, 2026
19d49a5
[MBL-19959][Teacher] Fix error when accessing checkpoint discussion f…
kristofnemere Apr 22, 2026
fe93707
[MBL-19926][Student] InstUI Design System Foundation (#3650)
hermannakos Apr 22, 2026
ab358a1
[Horizon] Edge to edge fix (#3616)
domonkosadam Apr 22, 2026
597f1c0
[MBL-19958][Student] Migrate dashboard course widget to GraphQL (#3648)
hermannakos Apr 22, 2026
603c526
Fixed Parent and Teacher tests
kristofnemere Apr 23, 2026
8330140
[MBL-19314][Parent] - Implement Parent Grades List DCP E2E Test (#3657)
kdeakinstructure Apr 24, 2026
2b70989
[MBL-19444][Student] Implement Offline E2E test for Discussion Checkp…
adamNagy56 Apr 24, 2026
d9b6d37
[MBL-19874][All] Privacy Consent dialog (#3613)
hermannakos Apr 27, 2026
1303261
Update translations
github-actions[bot] Apr 28, 2026
603d14c
[MBL-19970][All] - Fix Help Menu E2E tests (#3664)
kdeakinstructure Apr 29, 2026
1a7655c
[MBL-19968][All] Privacy settings screen & consent flow cleanup (#3666)
tamaskozmer Apr 29, 2026
a934f3f
Version bump
kristofnemere Apr 29, 2026
69a0942
Fix apk path in flank files.
kdeakinstructure Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
45 changes: 45 additions & 0 deletions .github/workflows/open-source-build-parent.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "Open Source Build: Parent"

on:
schedule:
- cron: '0 9 * * 1'
workflow_dispatch:

jobs:
build:
name: Build Parent
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run open source script
run: ./open_source.sh

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Build DevDebug
run: |
./gradle/gradlew -p apps :parent:assembleDevDebug \
--build-cache \
--parallel \
--max-workers=4 \
--no-daemon \
-Dorg.gradle.jvmargs="-Xmx6g -XX:+HeapDumpOnOutOfMemoryError"

45 changes: 45 additions & 0 deletions .github/workflows/open-source-build-student.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "Open Source Build: Student"

on:
schedule:
- cron: '0 9 * * 1'
workflow_dispatch:

jobs:
build:
name: Build Student
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run open source script
run: ./open_source.sh

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Build DevDebug
run: |
./gradle/gradlew -p apps :student:assembleDevDebug \
--build-cache \
--parallel \
--max-workers=4 \
--no-daemon \
-Dorg.gradle.jvmargs="-Xmx6g -XX:+HeapDumpOnOutOfMemoryError"

45 changes: 45 additions & 0 deletions .github/workflows/open-source-build-teacher.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "Open Source Build: Teacher"

on:
schedule:
- cron: '0 9 * * 1'
workflow_dispatch:

jobs:
build:
name: Build Teacher
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run open source script
run: ./open_source.sh

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Cache Gradle packages
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Build DevDebug
run: |
./gradle/gradlew -p apps :teacher:assembleDevDebug \
--build-cache \
--parallel \
--max-workers=4 \
--no-daemon \
-Dorg.gradle.jvmargs="-Xmx6g -XX:+HeapDumpOnOutOfMemoryError"

2 changes: 1 addition & 1 deletion .github/workflows/release-student.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
with:
app-name: student
app-display-name: Student
include-e2e-offline: true
include-e2e-offline: false
slack-emoji: ':student-app:'
secrets:
GH_APP_ID: ${{ secrets.GH_APP_ID }}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/reusable-release-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,13 +158,13 @@ jobs:
matrix:
include:
- test-type: portrait
flank-config: flank.yml
flank-config: flank_portrait_interaction_release.yml
- test-type: landscape
flank-config: flank_landscape.yml
flank-config: flank_landscape_interaction_release.yml
- test-type: tablet
flank-config: flank_tablet.yml
flank-config: flank_tablet_interaction_release.yml
- test-type: e2e
flank-config: flank_e2e.yml
flank-config: flank_e2e_release.yml
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -186,7 +186,7 @@ jobs:
chmod 600 service-account-key.json

- name: Setup Flank config
run: cp ./apps/${{ inputs.app-name }}/${{ matrix.flank-config }} ./flank.yml
run: cp ./apps/${{ inputs.app-name }}/release_tests/${{ matrix.flank-config }} ./flank.yml

- name: Copy APKs to expected locations
run: |
Expand Down
67 changes: 29 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,22 @@ The open source code provided by the Android Team at Instructure.

## Building

First, install the Flutter SDK using the instructions found [here](https://flutter.dev/docs/get-started/install).

Next, run `./open_source.sh` once. You may now use Gradle to build the apps.
Run `./open_source.sh` once. You may now use Gradle to build the apps.

### Student, Teacher and native Parent

1. Open `apps/build.gradle` in Android Studio
```
Android Studio > Import Project > canvas-android/apps/build.gradle
```

2. Select the app from the list of configurations (`student` or `teacher`)
3. Tap 'Run' (`^R`) to run the app

### Flutter Parent

1. Open `canvas-android/apps/flutter_parent` in Android Studio.
2. Make sure the `main.dart` configuration is selected
```
Android Studio > Import Project > canvas-android/apps/build.gradle
```
2. Select the app from the list of configurations
3. Tap 'Run' (`^R`) to run the app

App | Command | Build Status
--- | --- | ---
Student | `./gradle/gradlew -p apps :student:assembleDevDebug` | [![Student build Status](https://app.bitrise.io/app/9417c28328c02b7c/status.svg?token=D7fHdeUlz19PurcEPIQNzw&branch=master)](https://app.bitrise.io/app/9417c28328c02b7c)
Teacher | `./gradle/gradlew -p apps :teacher:assembleDevDebug` | [![Teacher build Status](https://app.bitrise.io/app/4f5339d0ec3436ca/status.svg?token=ATqaYNnYyS4eDUxc0d9EZQ&branch=master)](https://app.bitrise.io/app/4f5339d0ec3436ca)
Parent | (in apps/flutter_parent) `flutter pub get; flutter build apk` | [![Parent build Status](https://app.bitrise.io/app/39fd3312f33be200/status.svg?token=jiiPeSZlSxrx5lkqccLN1Q&branch=master)](https://app.bitrise.io/app/39fd3312f33be200)
| App | Command | Build Status |
|---------|------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Student | `./gradle/gradlew -p apps :student:assembleDevDebug` | [![Student](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-student.yml/badge.svg)](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-student.yml) |
| Teacher | `./gradle/gradlew -p apps :teacher:assembleDevDebug` | [![Teacher](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-teacher.yml/badge.svg)](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-teacher.yml) |
| Parent | `./gradle/gradlew -p apps :parent:assembleDevDebug` | [![Parent](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-parent.yml/badge.svg)](https://github.com/instructure/canvas-android/actions/workflows/open-source-build-parent.yml) |

## Running tests

Expand All @@ -42,11 +33,11 @@ To run unit tests for Student, Teacher and native Parent

#### The Applications we have published on Google Play.

App | Description
--- | ---
[Canvas Student][canvas] | Used by Students all over the world to be smarter, go faster, and do more.
[Canvas Teacher][teacher] | User by Teachers all over the world to update course content or grade on the go.
[Canvas Parent][parent] | Used by Parents all over the world to be parents.
| App | Description |
|---------------------------|----------------------------------------------------------------------------------|
| [Canvas Student][canvas] | Used by Students all over the world to be smarter, go faster, and do more. |
| [Canvas Teacher][teacher] | User by Teachers all over the world to update course content or grade on the go. |
| [Canvas Parent][parent] | Used by Parents all over the world to be parents. |

[canvas]: https://play.google.com/store/apps/details?id=com.instructure.candroid
[teacher]: https://play.google.com/store/apps/details?id=com.instructure.teacher
Expand All @@ -56,20 +47,20 @@ App | Description

#### These are things that we use internally to create our applications.

Module | Description
--- | ---
annotations | A wrapper for the PSPDFKit library and logic for annotation handling and converting in PDF documents.
buildSrc | Library for common gradle dependencies and gradle transformers that are used by the project.
canvas-api-2 | Canvas for Android Api used to talk to the Canvas LMS and is testable.
dataseedingapi | gRPC wrapper for Canvas that enables creating data to test the apps.
DocumentScanner | A wrapper for document scanning features.
espresso | The UI testing library built on Espresso.
interactions | Interactions for navigation used in the apps.
login-api-2 | The libarary used to make logging in and getting a token relative easy and is testable.
pandares | Collection of resources used in our apps.
pandautils | The core library for the apps. All the common code is implemented here that is reused by the 3 apps.
rceditor | A wrapper for rich content editing used in our apps.
recyclerview | A fancy RecyclerView library that supports expanding and collapsing, pagination, and stuff like that. (deprecated)
| Module | Description |
|----------------|--------------------------------------------------------------------------------------------------------------------|
| annotations | A wrapper for the PSPDFKit library and logic for annotation handling and converting in PDF documents. |
| buildSrc | Library for common gradle dependencies and gradle transformers that are used by the project. |
| canvas-api-2 | Canvas for Android Api used to talk to the Canvas LMS and is testable. |
| dataseedingapi | gRPC wrapper for Canvas that enables creating data to test the apps. |
| espresso | The UI testing library built on Espresso. |
| horizon | Canvas Career experience for the Student app. |
| interactions | Interactions for navigation used in the apps. |
| login-api-2 | The libarary used to make logging in and getting a token relative easy and is testable. |
| pandares | Collection of resources used in our apps. |
| pandautils | The core library for the apps. All the common code is implemented here that is reused by the 3 apps. |
| rceditor | A wrapper for rich content editing used in our apps. |
| recyclerview | A fancy RecyclerView library that supports expanding and collapsing, pagination, and stuff like that. (deprecated) |

#### Our applications are licensed under the GPLv3 License.

Expand Down
12 changes: 7 additions & 5 deletions apps/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,13 @@ task assembleAllApps() {

apply from: '../gradle/jacoco.gradle'

configurations.all{
resolutionStrategy {
eachDependency { details ->
if ('org.jacoco' == details.requested.group) {
details.useVersion "0.8.7"
configurations.configureEach {
if (canBeResolved) {
resolutionStrategy {
eachDependency { details ->
if ('org.jacoco' == details.requested.group) {
details.useVersion "0.8.7"
}
}
}
}
Expand Down
1 change: 1 addition & 0 deletions apps/buildSrc/src/main/java/GlobalDependencies.kt
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ object Libs {
const val COMPOSE_NAVIGATION_HILT = "androidx.hilt:hilt-navigation-compose:1.3.0"
const val COMPOSE_FRAGMENT = "androidx.fragment:fragment-compose:1.8.9"
const val COMPOSE_REORDERABLE = "sh.calvin.reorderable:reorderable:${Versions.REORDERABLE}"
const val COMPOSE_FOUNDATION = "androidx.compose.foundation:foundation"

// Glance
const val GLANCE = "androidx.glance:glance:${Versions.GLANCE}"
Expand Down
2 changes: 1 addition & 1 deletion apps/buildSrc/src/main/java/MergePrivateData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ object PrivateData {
val dataDir = File(baseDir, dataDirName).canonicalFile

println("")
println("============= MERGE PRIVATE FILES: ${dataDirName.toUpperCase()} ".padEnd(PRINT_PAD_SIZE, '='))
println("============= MERGE PRIVATE FILES: ${dataDirName.uppercase()} ".padEnd(PRINT_PAD_SIZE, '='))

/* Confirm dir exists */
if (!dataDir.exists() || !dataDir.isDirectory) {
Expand Down
34 changes: 18 additions & 16 deletions apps/parent/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ plugins {
id 'org.jetbrains.kotlin.plugin.compose'
}

configurations {
all*.exclude group: 'commons-logging', module: 'commons-logging'
all*.exclude group: 'org.apache.httpcomponents', module: 'httpclient'
configurations.configureEach {
exclude group: 'commons-logging', module: 'commons-logging'
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}

def coverageEnabled = project.hasProperty('coverage')
Expand All @@ -41,8 +41,8 @@ android {
applicationId "com.instructure.parentapp"
minSdkVersion Versions.MIN_SDK
targetSdkVersion Versions.TARGET_SDK
versionCode 67
versionName "4.10.1"
versionCode 69
versionName "4.11.1"

buildConfigField "boolean", "IS_TESTING", "false"
testInstrumentationRunner 'com.instructure.parentapp.ui.espresso.ParentHiltTestRunner'
Expand Down Expand Up @@ -123,17 +123,19 @@ android {
}
}

configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
/*
Resolves dependency versions across test and production APKs, specifically, transitive
dependencies. This is required since Espresso internally has a dependency on support-annotations.
https://github.com/googlecodelabs/android-testing/blob/57852eaf7df88ddaf828eca879a407f2249d5348/app/build.gradle#L86
*/
resolutionStrategy.force Libs.ANDROIDX_ANNOTATION

resolutionStrategy.force Libs.KOTLIN_COROUTINES_CORE
resolutionStrategy.force Libs.KOTLIN_STD_LIB
configurations.configureEach {
if (canBeResolved) {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
/*
Resolves dependency versions across test and production APKs, specifically, transitive
dependencies. This is required since Espresso internally has a dependency on support-annotations.
https://github.com/googlecodelabs/android-testing/blob/57852eaf7df88ddaf828eca879a407f2249d5348/app/build.gradle#L86
*/
resolutionStrategy.force Libs.ANDROIDX_ANNOTATION

resolutionStrategy.force Libs.KOTLIN_COROUTINES_CORE
resolutionStrategy.force Libs.KOTLIN_STD_LIB
}
}

configurations.implementation.dependencies.each { compileDependency ->
Expand Down
25 changes: 25 additions & 0 deletions apps/parent/release_tests/flank_e2e_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
gcloud:
project: delta-essence-114723
# Use the next two lines to run locally
# app: ../build/outputs/apk/qa/debug/parent-qa-debug.apk
# test: ../build/outputs/apk/androidTest/qa/debug/parent-qa-debug-androidTest.apk
app: ../apps/parent/build/outputs/apk/qa/debug/parent-qa-debug.apk
test: ../apps/parent/build/outputs/apk/androidTest/qa/debug/parent-qa-debug-androidTest.apk
results-bucket: android-parent
auto-google-login: true
use-orchestrator: true
performance-metrics: false
record-video: true
timeout: 60m
test-targets:
- annotation com.instructure.canvas.espresso.annotations.E2E
- notAnnotation com.instructure.canvas.espresso.annotations.ReleaseExclude, com.instructure.canvas.espresso.annotations.Stub, com.instructure.canvas.espresso.annotations.FlakyE2E, com.instructure.canvas.espresso.annotations.KnownBug, com.instructure.canvas.espresso.annotations.OfflineE2E
device:
- model: Pixel2.arm
version: 29
locale: en_US
orientation: portrait

flank:
testShards: 10
testRuns: 1
Loading
Loading