Skip to content
Open
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
114 changes: 114 additions & 0 deletions .github/workflows/android-shopping-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Android Shopping App CI
on:
push:
branches: [ main, develop, master, 'feature/**' ]
pull_request:
branches: [ main, develop ]

jobs:
code-quality:
name: Code Quality Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Grant execute permission
run: chmod +x gradlew
- name: Run Lint
run: ./gradlew lintDebug
- name: Upload lint report
if: always()
uses: actions/upload-artifact@v3
with:
name: lint-results
path: app/build/reports/lint-results-debug.html
- name: Run Detekt
run: ./gradlew detekt
- name: Upload detekt report
if: always()
uses: actions/upload-artifact@v3
with:
name: detekt-results
path: app/build/reports/detekt/detekt.html

unit-tests:
name: Unit Tests
needs: code-quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Run unit tests
run: ./gradlew testDebugUnitTest --stacktrace
- name: Generate coverage report
run: ./gradlew jacocoTestReport
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: unit-test-results
path: app/build/reports/tests/testDebugUnitTest/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml
flags: unittests

instrumented-tests:
name: Instrumented Tests
needs: code-quality
runs-on: macos-latest
strategy:
matrix:
api-level: [28, 30, 33]
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Run instrumented tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: google_apis
arch: x86_64
profile: Nexus 6
script: ./gradlew connectedDebugAndroidTest
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: instrumented-test-results-api-${{ matrix.api-level }}
path: app/build/reports/androidTests/connected/

build-debug:
name: Build Debug APK
needs: [unit-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Build debug APK
run: ./gradlew assembleDebug
- name: Upload debug APK
uses: actions/upload-artifact@v3
with:
name: app-debug
path: app/build/outputs/apk/debug/app-debug.apk
76 changes: 76 additions & 0 deletions .github/workflows/android-shopping-ci2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Android CI Lite

on:
push:
branches: [ main, develop, master, 'feature/**' ]
pull_request:
branches: [ main, develop ]

jobs:
code-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Grant execute permission
run: chmod +x gradlew
- name: Run Lint
run: ./gradlew lintDebug
- name: Upload Lint report
if: always()
uses: actions/upload-artifact@v3
with:
name: lint-results
path: app/build/reports/lint-results-debug.html
- name: Run Detekt
run: ./gradlew detekt
- name: Upload Detekt report
if: always()
uses: actions/upload-artifact@v3
with:
name: detekt-results
path: app/build/reports/detekt/detekt.html

unit-tests:
needs: code-quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Run Unit Tests
run: ./gradlew testDebugUnitTest --stacktrace
- name: Upload Unit Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: unit-test-results
path: app/build/reports/tests/testDebugUnitTest/

build-debug:
needs: unit-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Build Debug APK
run: ./gradlew assembleDebug
- name: Upload Debug APK
uses: actions/upload-artifact@v3
with:
name: app-debug
path: app/build/outputs/apk/debug/app-debug.apk
114 changes: 114 additions & 0 deletions .github/workflows/android-shopping-ci3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Android Shopping App CI
on:
push:
branches: [ main, develop, master, 'feature/**' ]
pull_request:
branches: [ main, develop ]

jobs:
code-quality:
name: Code Quality Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Grant execute permission
run: chmod +x gradlew
- name: Run Lint
run: ./gradlew lintDebug
- name: Upload lint report
if: always()
uses: actions/upload-artifact@v3
with:
name: lint-results
path: app/build/reports/lint-results-debug.html
- name: Run Detekt
run: ./gradlew detekt
- name: Upload detekt report
if: always()
uses: actions/upload-artifact@v3
with:
name: detekt-results
path: app/build/reports/detekt/detekt.html

unit-tests:
name: Unit Tests
needs: code-quality
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Run unit tests
run: ./gradlew testDebugUnitTest --stacktrace
- name: Generate coverage report
run: ./gradlew jacocoTestReport
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: unit-test-results
path: app/build/reports/tests/testDebugUnitTest/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml
flags: unittests

instrumented-tests:
name: Instrumented Tests
needs: code-quality
runs-on: macos-latest
strategy:
matrix:
api-level: [28, 30, 33]
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Run instrumented tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: google_apis
arch: x86_64
profile: Nexus 6
script: ./gradlew connectedDebugAndroidTest
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: instrumented-test-results-api-${{ matrix.api-level }}
path: app/build/reports/androidTests/connected/

build-debug:
name: Build Debug APK
needs: [unit-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Build debug APK
run: ./gradlew assembleDebug
- name: Upload debug APK
uses: actions/upload-artifact@v3
with:
name: app-debug
path: app/build/outputs/apk/debug/app-debug.apk