name: Musicmax CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: validation: name: Validation runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 analyze-code: needs: validation name: Analyze code runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 cache: gradle - name: Run spotless run: ./gradlew spotlessCheck - name: Run detekt run: ./gradlew detekt - name: Run lint run: ./gradlew :app:lint tests: needs: analyze-code name: Tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 cache: gradle - name: Run tests run: ./gradlew test build-debug: needs: tests name: Build debug runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 cache: gradle - name: Assemble debug run: ./gradlew :app:assembleDebug build-release: needs: tests name: Build release runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 cache: gradle - name: Assemble release run: ./gradlew :app:assembleRelease