Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit d47f2033 authored by Rafael Tonholo's avatar Rafael Tonholo
Browse files

ci: added new pr pipeline

parent 32a67373
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
name: Gradle cache
description: Enable Gradle Wrapper caching (optimization)
runs:
  using: 'composite'
  steps:
    - name: Enable Gradle Wrapper caching
      uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # 4.2.4
      with:
        path:
          ~/.gradle/caches
          ~/.gradle/wrapper
        key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
        restore-keys: |
          ${{ runner.os }}-gradle-
+20 −0
Original line number Diff line number Diff line
name: Set up build environment
description: Prepares environment for building with JDK and Gradle
runs:
  using: 'composite'
  steps:
    - name: Copy CI gradle.properties
      shell: bash
      run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

    - name: Set up JDK
      uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
      with:
        distribution: 'temurin'
        java-version: '17'

    - name: Set up Gradle
      uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1

    - name: Restore Gradle cache
      uses: ./.github/actions/gradle_cache
+123 −0
Original line number Diff line number Diff line
name: Pull request checks
on:
  pull_request:
    paths-ignore:
      - '.idea/**'
      - '.gitattributes'
      - '.github/**.json'
      - '.gitignore'
      - '.gitmodules'
      - '**.md'
      - 'LICENSE'
      - 'NOTICE'

permissions:
  contents: read

jobs:
  build-k9:
    name: Build K9 application
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Build K9 application
        run: ./gradlew :app-k9mail:assemble

  build-thunderbird:
    name: Build Thunderbird application
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Build Thunderbird application
        run: ./gradlew :app-thunderbird:assemble

  lint:
    name: Quality - Lint
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Running Android lint
        run: ./gradlew lint

  spotless:
    name: Quality - Spotless
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Running spotless check
        run: ./gradlew spotlessCheck

  detekt:
    name: Quality - Detekt
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Running Detekt
        run: ./gradlew detekt

      - name: Running Detekt including KMP
        # As we were not verifying detekt in KMP sources before,
        # this step is likely to fail.
        continue-on-error: true
        run: |
          ./gradlew detektMetadataCommonMain
          ./gradlew detektMetadataMain
          ./gradlew detektMetadataCommonJvmMain

  unit-test:
    name: Quality - Unit tests
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Running unit tests
        run: ./gradlew test --parallel

  dependency-guard:
    name: Quality - Dependency Guard
    runs-on: ubuntu-latest
    timeout-minutes: 90
    steps:
      - name: Checkout the repo
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Prepares environment
        uses: ./.github/actions/setup

      - name: Running Dependency Guard
        run: ./gradlew dependencyGuard