1version: 2
2
3jobs:
4 core:
5 docker:
6 - image: rust:1
7
8 steps:
9 - checkout
10
11 - restore_cache:
12 key: target-cache
13
14 - run: rustc --version; cargo --version; rustup --version
15 - run: rustup component add rustfmt
16 - run: rustup component add clippy
17 - run: cargo fmt -- --check
18 - run: cargo test
19 - run: cargo clippy
20 - run: cargo bench
21
22 - save_cache:
23 key: target-cache
24 paths:
25 - ~/.cargo
26 - ./target
27
28 android:
29 docker:
30 - image: circleci/android:api-28
31
32 environment:
33 _JAVA_OPTIONS: "-Xmx3200m -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:ParallelGCThreads=2 -XX:ConcGCThreads=2 -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2"
34
35 steps:
36 - checkout
37
38 - restore_cache:
39 key: jars-{{ checksum "bindings/kotlin/build.gradle" }}-{{ checksum "bindings/kotlin/stretch/build.gradle" }}
40
41 - run: curl https://sh.rustup.rs -sSf | sh -s -- -y
42 - run: yes | sdkmanager --update || true
43 - run: cd bindings/kotlin && ./gradlew androidDependencies --no-daemon --max-workers 2
44
45 - save_cache:
46 paths:
47 - bindings/kotlin/.gradle
48 key: jars-{{ checksum "bindings/kotlin/build.gradle" }}-{{ checksum "bindings/kotlin/stretch/build.gradle" }}
49
50 - run:
51 name: List sdk images
52 command: sdkmanager --list --include_obsolete --verbose
53
54 - run:
55 name: Setup emulator
56 command: sdkmanager "system-images;android-26;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-26;default;armeabi-v7a"
57
58 - run:
59 name: Launch emulator
60 command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel on
61
62 - run:
63 name: Run tests
64 command: cd bindings/kotlin && ./gradlew connectedAndroidTest
65
66 - store_artifacts:
67 path: bindings/kotlin/stretch/build/test-results
68 destination: reports
69
70 - store_test_results:
71 path: bindings/kotlin/stretch/build/test-results
72
73workflows:
74 version: 2
75 test_all:
76 jobs:
77 - android
78 - core