fix search message #17
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Checks | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
push: | |
branches: [master, develop] | |
jobs: | |
code-style: | |
name: "Code Style" | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Find PR Base Commit | |
id: vars | |
run: | | |
git fetch origin develop | |
echo "::set-output name=branchBaseCommit::$(git merge-base origin/develop HEAD)" | |
- name: XML of changed files | |
run: | | |
curl -s -L https://github.com/ByteHamster/android-xml-formatter/releases/download/1.1.0/android-xml-formatter.jar > android-xml-formatter.jar | |
git diff --name-only ${{ steps.vars.outputs.branchBaseCommit }} --diff-filter=AM | { grep "res/layout/" || true; } | xargs java -jar android-xml-formatter.jar | |
test $(git diff | wc -l) -eq 0 || (echo -e "\n\n===== Found XML code style violations! See output below how to fix them. =====\n\n" && git --no-pager diff --color=always && false) | |
wrapper-validation: | |
name: "Gradle Wrapper Validation" | |
needs: code-style | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: gradle/wrapper-validation-action@v1 | |
static-analysis: | |
name: "Static Code Analysis" | |
needs: code-style | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache Gradle | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Lint :app module recursively | |
run: ./gradlew :app:lintPlayRelease | |
# - name: SpotBugs | |
# run: ./gradlew spotbugsPlayDebug spotbugsDebug 2>&1 | grep -i "spotbugs" | |
unit-test: | |
name: "Unit Test: ${{ matrix.variant }}" | |
needs: code-style | |
runs-on: ubuntu-latest | |
timeout-minutes: 45 | |
strategy: | |
matrix: | |
include: | |
- variant: "PlayDebug" | |
base-variant: "Debug" | |
execute-tests: true | |
upload-artifact: true | |
- variant: "PlayRelease" | |
base-variant: "Release" | |
execute-tests: true | |
upload-artifact: false | |
- variant: "FreeRelease" | |
base-variant: "Release" | |
execute-tests: false | |
upload-artifact: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache Gradle | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Create temporary release keystore | |
run: keytool -noprompt -genkey -v -keystore "app/keystore" -alias alias -storepass password -keypass password -keyalg RSA -validity 10 -dname "CN=podcini.org, OU=dummy, O=dummy, L=dummy, S=dummy, C=US" | |
- name: Build | |
run: ./gradlew assemble${{ matrix.variant }} | |
- name: Test | |
if: matrix.execute-tests == true | |
run: ./gradlew test${{ matrix.variant }}UnitTest test${{ matrix.base-variant }}UnitTest | |
- uses: actions/upload-artifact@v3 | |
if: matrix.upload-artifact == true | |
with: | |
name: app-play-debug.apk | |
path: app/build/outputs/apk/play/debug/app-play-debug.apk | |
emulator-test: | |
name: "Emulator Test" | |
needs: code-style | |
runs-on: macOS-latest | |
timeout-minutes: 45 | |
env: | |
api-level: 30 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
- name: Cache Gradle | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
- name: Build with Gradle | |
run: ./gradlew assemblePlayDebugAndroidTest | |
- name: Android Emulator test | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ env.api-level }} | |
target: aosp_atd | |
channel: canary | |
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: zsh .github/workflows/runEmulatorTests.sh | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: test-report | |
path: app/build/reports/androidTests/connected/flavors/PLAY/ |