Skip to content

Merge pull request #37 from ronaldocoding/feature/reset-password-screen #114

Merge pull request #37 from ronaldocoding/feature/reset-password-screen

Merge pull request #37 from ronaldocoding/feature/reset-password-screen #114

Workflow file for this run

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