使用 Github 操作的持续部署抛出错误

Continuous Deployment throwing error using Github action

我正在尝试使用 github 操作构建调试 APK。但是显示 Task 'clean' not found in root project 'My Application'. 。我无法理解哪里出了问题。

我已将 android.yml 放置如下:

我的 android.yml 看起来像这样:

name: Android CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Grant execute permission for gradlew
        run: chmod +x ./MyApplication/gradlew

      - name: Build with Gradle
        run: ./MyApplication/gradlew build

      - name: Build debug APK
        run: ./MyApplication/gradlew clean assembleDebug

      - name: Upload APK
        uses: actions/upload-artifact@v1
        with:
          name: Debug App
          path: ./MyApplication/app/build/outputs/apk/debug/app-debug.apk

编辑:检查任务成功,如图所示。

Settings.gradle

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        jcenter() // Warning: this repository is going to shut down soon
    }
}
rootProject.name = "My Application"
include ':app'
include ':library'

先检查:

  • 您的 gradlew clean 已执行 from the root folder of your project,
  • 并且您的 在同一个存储库中。
  • 根文件夹是 MyApplication,而不是 My Application

您可以添加一个./MyApplication/gradlew tasks以查看gradle是如何配置的。

问题是根项目中应该有 'app'。它不应该像另一个文件夹中的 'app' 那样导致我出现问题。在我的例子中,MyApplication 的所有内容都应该在 CICDSample 下。然后它将构建应用程序。

这应该是项目结构。

我的 android.yml 文件如下所示:

name: Android CI

on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]

jobs:
    build:

    runs-on: ubuntu-latest

    steps:
        - uses: actions/checkout@v2

        - name: set up JDK 11
          uses: actions/setup-java@v2
          with:
              java-version: '11'
              distribution: 'temurin'
              cache: gradle

        - name: Grant execute permission for gradlew
          run: chmod +x gradlew

        - name: Build with Gradle
          run: ./gradlew build

        - name: Checking lint
          run: ./gradlew lint

        - name: Build debug APK
          run: ./gradlew clean assembleDebug

        - name: Upload APK
          uses: actions/upload-artifact@v1
          with:
              name: Debug App
              path: ./app/build/outputs/apk/debug/app-debug.apk

您可以从这里下载神器: