diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index ac7fba2..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,104 +0,0 @@ -version: 2.1 -orbs: - gradle: circleci/gradle@2.2.0 - android: circleci/android@2.2.0 - -jobs: - run-tests-generate-samples: - executor: - name: android/android-machine - resource-class: large - tag: 2023.05.1 - steps: - - checkout - - restore_cache: - key: jars2-{{ checksum "build.gradle.kts" }}-{{ checksum "lib/build.gradle.kts" }} - - run: - name: Chmod permissions #if permission for Gradlew Dependencies fail, use this. - command: sudo chmod +x ./gradlew - - run: - name: Wrapper - command: ./gradlew wrapper - - run: - name: Download Dependencies - command: ./gradlew androidDependencies - - save_cache: - paths: - - ~/.gradle - key: jars2-{{ checksum "build.gradle.kts" }}-{{ checksum "lib/build.gradle.kts" }} - - - android/create-avd: - avd-name: testDevice - system-image: system-images;android-30;google_apis;x86_64 - install: true - additional-args: --device pixel_4 - - - android/start-emulator: - avd-name: testDevice - no-window: true - restore-gradle-cache-prefix: v2a - - - android/run-tests: - test-command: ./gradlew lib:connectedDebugAndroidTest - max-tries: 3 - - android/save-gradle-cache: - cache-prefix: v2a - - store_test_results: - path: lib/build/outputs/androidTest-results - deploy-to-sonatype: - executor: - name: android/android-machine - resource-class: large - tag: 2023.05.1 - steps: - - checkout - - restore_cache: - key: jars-{{ checksum "build.gradle.kts" }}-{{ checksum "lib/build.gradle.kts" }} - - run: - name: Chmod permissions #if permission for Gradlew Dependencies fail, use this. - command: sudo chmod +x ./gradlew - - run: - name: Wrapper - command: ./gradlew wrapper - - run: - name: Download Dependencies - command: ./gradlew androidDependencies - - save_cache: - paths: - - ~/.gradle - key: jars-{{ checksum "build.gradle.kts" }}-{{ checksum "lib/build.gradle.kts" }} - - run: - name: Force break line gradle properties - command: echo -e '\n' >> gradle.properties - - run: - name: Inject Maven signing key - command: | - echo $GPG_SIGNING_KEY \ - | awk 'NR == 1 { print "SIGNING_KEY=" } 1' ORS='\\n' \ - >> gradle.properties - - run: - name: Snapshot Release Check - command: | - echo -e "\nIS_SNAPSHOT_RELEASE=$( [[ "${CIRCLE_BRANCH}" =~ ^epic.* ]] && echo true || echo false )" >> gradle.properties - - run: - name: Publish to Maven - command: ./gradlew assemble publish -workflows: - build-test-sonar-publish: - jobs: - - run-tests-generate-samples: - context: - - SonarCloud - - maven-sign - - mobile - - deploy-to-sonatype: - name: Build, run tests, sonar and push to maven staging - context: - - SonarCloud - - maven-sign - - mobile - filters: - branches: - only: - - /^(epic)\/.*/ - - staging \ No newline at end of file diff --git a/.github/workflows/BuildTest.yml b/.github/workflows/BuildTest.yml new file mode 100644 index 0000000..17f3bf9 --- /dev/null +++ b/.github/workflows/BuildTest.yml @@ -0,0 +1,58 @@ +name: Build Test + +on: + push: + branches: + - 'task/**' + - 'bug/**' + - 'fix/**' + - 'epic/**' + +jobs: + build_test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + ls /dev/kvm + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + + - name: Accept licenses + run: yes | sdkmanager --licenses || true + + - name: Setup GMD + run: ./gradlew :lib:pixel6Api33Setup + --info + -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true + -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" + + - name: Build lib and run instrumentation tests + run: ./gradlew :lib:pixel6Api33DebugAndroidTest + -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect" + -Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true + -Pandroid.experimental.androidTest.numManagedDeviceShards=1 + -Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1 + -Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=5 + + - name: Upload test results + uses: actions/upload-artifact@v3 + with: + name: test-results + path: lib/build/outputs/androidTest-results \ No newline at end of file diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml new file mode 100644 index 0000000..702d3c4 --- /dev/null +++ b/.github/workflows/Release.yml @@ -0,0 +1,50 @@ +name: Build and Deploy to SonarType + +on: + push: + branches: + - 'staging' + - 'epic/**' + +jobs: + build_release: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + ls /dev/kvm + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Restore gradle.properties + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} + SIGNING_KEY_PWD: ${{ secrets.SIGNING_KEY_PWD }} + shell: bash + run: | + mkdir -p ~/.gradle/ + echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV + echo "OSSRH_USERNAME=${OSSRH_USERNAME}">> ~/.gradle/gradle.properties + echo "OSSRH_PASSWORD=${OSSRH_PASSWORD}">> ~/.gradle/gradle.properties + echo "SIGNING_KEY=${GPG_SIGNING_KEY}">> ~/.gradle/gradle.properties + echo "SIGNING_KEY_PWD=${SIGNING_KEY_PWD}">> ~/.gradle/gradle.properties + cat ~/.gradle/gradle.properties + + - name: Snapshot Release Check + run: | + echo -e "\nIS_SNAPSHOT_RELEASE=$( [[ "${CIRCLE_BRANCH}" =~ ^epic.* ]] && echo true || echo false )" >> gradle.properties + + - name: Publish to Maven + run: ./gradlew assemble publish \ No newline at end of file diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index c82d187..6ebc7ab 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -76,6 +76,18 @@ android { withSourcesJar() } } + + testOptions { + managedDevices { + localDevices { + create("pixel6Api33") { + device = "Pixel 6" + apiLevel = 33 + systemImageSource = "aosp" + } + } + } + } } dependencies {