Skip to content
Open

Ci #4614

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 108 additions & 31 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

Expand All @@ -8,12 +8,20 @@ orbs:
codecov: codecov/codecov@3.3.0

jobs:
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
build-and-test:
# Compile job: compiles sources and persists the workspace for downstream jobs
compile:
machine: true
resource_class: nightscout/android

steps:
- run:
name: Skip CircleCI on pull requests
command: |
if [ -n "${CIRCLE_PULL_REQUEST:-}" ]; then
echo "Pull request detected; skipping CircleCI job."
circleci-agent step halt
fi

- checkout

- run:
Expand All @@ -23,12 +31,66 @@ jobs:
export ANDROID_HOME=/usr/lib/android-sdk
env
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss4m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.daemon=true \
compileFullDebugAndroidTestSources

- persist_to_workspace:
root: .
paths:
- .

# Unit test job: runs in parallel with instrumented-test
unit-test:
machine: true
resource_class: nightscout/android

steps:
- attach_workspace:
at: .

- run:
name: Run testFullDebugUnitTest
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss4m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.workers.max=22 \
-Dorg.gradle.daemon=true \
testFullDebugUnitTest

- run:
name: Save unit test results
command: |
mkdir -p ~/test-results/junit/
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/junit/ \;
when: always

- store_test_results:
path: ~/test-results

- store_artifacts:
path: ~/test-results/junit

- persist_to_workspace:
root: .
paths:
- "*/build/test-results"

# Instrumented test job: runs in parallel with unit-test
instrumented-test:
machine: true
resource_class: nightscout/android

steps:
- attach_workspace:
at: .

- run:
name: Create avd
command: |
Expand All @@ -49,40 +111,20 @@ jobs:
export ANDROID_HOME=/usr/lib/android-sdk
env
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss4m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.daemon=true \
connectedFullDebugAndroidTest

- run:
name: Kill emulators
command: |
echo "Killing emulators"
adb devices | grep emulator | cut -f1 | while read -r line; do adb -s $line emu kill; done

- run:
name: Run testFullDebugUnitTest
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
./gradlew \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.workers.max=22 \
-Dorg.gradle.daemon=true \
testFullDebugUnitTest

- run:
run: Run jacocoAllDebugReport
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
./gradlew --stacktrace jacocoAllDebugReport

- run:
name: Save test results
name: Save instrumented test results
command: |
mkdir -p ~/test-results/junit/
find . -type f -regex ".*/build/outputs/androidTest-results/.*xml" -exec cp {} ~/test-results/junit/ \;
Expand All @@ -94,6 +136,33 @@ jobs:
- store_artifacts:
path: ~/test-results/junit

- persist_to_workspace:
root: .
paths:
- "*/build/outputs/androidTest-results"

- run:
name: Kill java processes
command: |
killall java
when: always

# Coverage job: depends on both test jobs, merges and uploads coverage
coverage:
machine: true
resource_class: nightscout/android

steps:
- attach_workspace:
at: .

- run:
name: Run jacocoAllDebugReport
command: |
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
./gradlew --stacktrace jacocoAllDebugReport

- codecov/upload:
file: './build/reports/jacoco/jacocoAllDebugReport/jacocoAllDebugReport.xml'

Expand All @@ -104,10 +173,18 @@ jobs:
when: always

workflows:
# Below is the definition of your workflow.
# Inside the workflow, you provide the jobs you want to run, e.g this workflow runs the build-and-test job above.
# CircleCI will run this workflow on every commit.
# For more details on extending your workflow, see the configuration docs: https://circleci.com/docs/2.0/configuration-reference/#workflows
# unit-test and instrumented-test run in parallel after compile, then coverage runs last.
dotests:
jobs:
- build-and-test
- compile
- unit-test:
requires:
- compile
- instrumented-test:
requires:
- compile
- coverage:
requires:
- unit-test
- instrumented-test
8 changes: 8 additions & 0 deletions .circleci/config.yml.cloud
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ jobs:
tag: 2023.11.1

steps:
- run:
name: Skip CircleCI on pull requests
command: |
if [ -n "${CIRCLE_PULL_REQUEST:-}" ]; then
echo "Pull request detected; skipping CircleCI job."
circleci-agent step halt
fi

- checkout

- android/change-java-version:
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/aaps-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,20 +181,21 @@ jobs:
# When upgrading the JDK, please update this section accordingly as well.
java-version: 21
distribution: 'temurin'
cache: gradle

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build APKs
run: |
./gradlew :app:assemble${{ env.BUILD_VARIANT }} :wear:assemble${{ env.BUILD_VARIANT }} \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss4m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.daemon=true \
-Dorg.gradle.workers.max=8 \
-Dorg.gradle.caching=true \
-Pandroid.injected.signing.store.file="$RUNNER_TEMP/keystore/keystore.jks" \
-Pandroid.injected.signing.store.password="$KEYSTORE_PASSWORD" \
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cherry-pick-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,20 +211,21 @@ jobs:
# When upgrading the JDK, please update this section accordingly as well.
java-version: 21
distribution: 'temurin'
cache: gradle

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build APKs
run: |
./gradlew :app:assemble${{ env.BUILD_VARIANT }} :wear:assemble${{ env.BUILD_VARIANT }} \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss1024m" \
-Dorg.gradle.jvmargs="-Xmx8g -XX:+UseParallelGC -Xss4m" \
-Dkotlin.daemon.jvm.options="-Xmx2g" \
-Dkotlin.compiler.execution.strategy="in-process" \
-Dorg.gradle.daemon=true \
-Dorg.gradle.workers.max=8 \
-Dorg.gradle.caching=true \
-Pandroid.injected.signing.store.file="$RUNNER_TEMP/keystore/keystore.jks" \
-Pandroid.injected.signing.store.password="$KEYSTORE_PASSWORD" \
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ on:

jobs:
claude-review:
continue-on-error: true
if: ${{ false }}
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
Expand Down
Loading
Loading