如果失败,Github 操作将拒绝操作

Stu*_*DTO 5 continuous-integration android yaml github github-actions

我第一次尝试使用 github 操作,我已经创建并遵循了 github 的教程,我的.github/workflows/push_main.yml是:

name: Android CI
on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11

      # Runs ktlint
      - name: Lint
        run: ./gradlew ktlintCheck

      # Execute unit tests
      - name: Unit Test
        run: ./gradlew testDebugUnitTest

Run Code Online (Sandbox Code Playgroud)

另外,我想要的是,当尝试进行变基或合并以main进行此检查时,如果它有效,则保留操作rebasemerge我想做类似的事情,创建一个临时分支,在那里进行检查,如果它有效执行rebaseormerge到 main 中,然后删除临时分支,但我不知道是否有其他有效的方法可以做到这一点。我还看到我可以并行运行作业,这会使其速度更快吗?

ste*_*and 5

在使用拉取请求合并之前,有一种超级方便的方法来构建、测试和聚合某个分支的更改结果。

创建拉取请求并触发执行检查的工作流程是很常见的。只需添加“pull_request:”即可重用现有工作流程、构建和测试您的更改。

name: Android CI
on:
  push:
    branches: [ main ]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11

      # Runs ktlint
      - name: Lint
        run: ./gradlew ktlintCheck

      # Execute unit tests
      - name: Unit Test
        run: ./gradlew testDebugUnitTest

Run Code Online (Sandbox Code Playgroud)

作业是并行执行的。当然这样更快。常见用例是定义所需测试目标的矩阵,例如操作系统版本、节点或 Java 版本。