Skip to content

Commit

Permalink
Setup GitHub Actions to release lib
Browse files Browse the repository at this point in the history
  • Loading branch information
Duy Phạm authored and Duy Phạm committed Nov 8, 2024
1 parent 5cca4b4 commit 7c4e897
Show file tree
Hide file tree
Showing 3 changed files with 156 additions and 106 deletions.
208 changes: 104 additions & 104 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,104 +1,104 @@
version: 2.1
orbs:
gradle: circleci/[email protected]
android: circleci/[email protected]

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
#version: 2.1
#orbs:
# gradle: circleci/[email protected]
# android: circleci/[email protected]
#
#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
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Setup Java 17
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
distribution: 'temurin'
java-version: '17'

- name: Setup Gradle
Expand All @@ -43,7 +43,7 @@ jobs:
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"

- name: Run Instrumental tests
- 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
Expand Down
50 changes: 50 additions & 0 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build and Deploy to SonarType

on:
push:
branches:
- 'staging'
- '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: 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

0 comments on commit 7c4e897

Please sign in to comment.