Merge pull request #46 from ronaldocoding/feature/add-restaurant-list… #137
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: Build, Test, and Deployment | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
inputs: | |
app_id: | |
description: 'The application Id of the current build' | |
required: true | |
branch: | |
description: 'The branch from which we have to build' | |
required: true | |
jobs: | |
build: | |
name: Setup Env and build | |
runs-on: macos-latest | |
steps: | |
- name: Checkout the code to specific branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.inputs.branch }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Set up Android SDK | |
uses: android-actions/setup-android@v2 | |
- name: Gradle caching | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Make gradlew executable | |
run: chmod + ./gradlew | |
- name: Cache SonarQube packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.sonar/cache | |
key: ${{ runner.os }}-sonar | |
restore-keys: ${{ runner.os }}-sonar | |
- name: Cache SonarCloud packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.sonar/cache | |
key: ${{ runner.os }}-sonar | |
restore-keys: ${{ runner.os }}-sonar | |
- name: Cache Gradle packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.gradle/caches | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} | |
restore-keys: ${{ runner.os }}-gradle | |
- name: Run tests | |
run: ./gradlew test | |
- name: Generate test reports | |
run: ./gradlew createDebugCoverageReport | |
- name: Build and analyze | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
run: ./gradlew assembleDebug sonar --info --stacktrace | |
- name: Rerun Sonarqube tasks | |
run: ./gradlew sonar --rerun-tasks --info | |
ktlint: | |
name: Ktlint check | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Run ktlintCheck | |
run: ./gradlew ktlintCheck | |
test: | |
name: Run Unit tests | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- run: ./gradlew test | |
- run: ./gradlew createDebugCoverageReport | |
- name: Upload test report | |
uses: actions/upload-artifact@v3 | |
with: | |
name: unit_test_report | |
path: app/build/reports/tests/testDebugUnitTest/ | |
- name: Upload test coverage report | |
uses: actions/upload-artifact@v3 | |
with: | |
name: unit_test_coverage_report | |
path: app/build/reports/coverage/test/debug/ | |
upload: | |
name: Upload APK | |
runs-on: macos-latest | |
steps: | |
- name: Checkout the code to specific branch | |
uses: actions/checkout@v3 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
- name: Build debug apk | |
run: ./gradlew assembleDebug --stacktrace | |
- name: Upload APK | |
uses: actions/upload-artifact@v3 | |
with: | |
name: app-debug.apk | |
path: app/build/outputs/apk/debug/app-debug.apk | |
if-no-files-found: error |