Skip to content

Update README.md

Update README.md #133

Workflow file for this run

name: CI
on:
pull_request:
types: [ opened, reopened, synchronize ]
push:
jobs:
build-gradle:
name: Build
# Run on external PRs, but not on internal PRs since those will be run by push to branch
runs-on: ubuntu-latest
outputs:
code-version: ${{ steps.extract.outputs.CODE_VERSION }}
steps:
- name: Checkout project sources
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Gradle Setup
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: wrapper
arguments: build
- id: extract
name: Extract code version from gradle.properties
run: echo "CODE_VERSION=$(awk -F= '$1~/VERSION_NAME/{print $2}' gradle.properties)" >> $GITHUB_OUTPUT
unit-tests:
runs-on: ubuntu-latest
needs: [ build-gradle ]
permissions:
contents: read
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Gradle Setup
uses: gradle/actions/setup-gradle@v3
with:
arguments: test --full-stacktrace
android-tests:
runs-on: ubuntu-latest
timeout-minutes: 35
needs: [ build-gradle, unit-tests ]
strategy:
matrix:
api-level: [26,33]
target: [google_apis]
arch: [x86_64]
permissions:
contents: read
steps:
- name: Enable KVM
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
- name: Checkout the code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Gradle Setup
uses: gradle/actions/setup-gradle@v3
- name: AVD cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}-${{ matrix.target }}-${{ matrix.arch }}
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: ${{ matrix.arch }}
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Run android tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: ${{ matrix.arch }}
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew connectedCheck --stacktrace
publish-to-snapshot:
name: Publish SNAPSHOT to sonatype.org
needs: [ android-tests ]
# Runs only in main
if: github.event_name != 'pull_request' && endsWith(needs.build-gradle.outputs.code-version, '-SNAPSHOT') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release')) && github.repository_owner == 'eu-digital-identity-wallet'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout the code
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: "temurin"
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Publish with Gradle Wrapper
uses: gradle/actions/setup-gradle@v3
with:
arguments: publishAllPublicationsToMavenCentral --full-stacktrace
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_REF_NAME: ${{ github.ref_name }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.OSSRH_GPG_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.OSSRH_PASSWORD }}