重在参与,请您投票 :)

这周突然发现公司项目的GitHub代码库多了一个Tab页,叫做GitHub Action。于是了解了一下,发现这就是大家期待已久的自动化功能。自动化不只是我们常说的CICD(持续集成和持续部署),通过定义一个yml文件我们可以实现更多的动作。这个yml配置文件会保存在代码库的.github文件夹,所以fork出去的代码库也跟着自动开启了相应的GitHub Action功能。

下面就是我们代码库里一个简单的例子,要实现的功能就是每个人发Pull Request或者Merge到master主库时,都会自动触发Gradle编译。Gradle编译过程包括了Checkstyle,单元测试,集成测试等。编译通过后,在你的Pull Request上面会有一个标记。

https://github.com/opendistro-for-elasticsearch/sql/blob/master/.github/workflows/gradle.yml

name: Java CI

on: [push, pull_request]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up JDK 1.12
      uses: actions/setup-java@v1
      with:
        java-version: 1.12
    - name: Build with Gradle
      run: ./gradlew build

除了完全自定义,GitHub已经贴心地内置了许多Action。这些Action涵盖了许多常用的任务,像对各种编程语言和构建工具的支持等。如果这些预定义Action无法满足你的话,可以像我们一样自定义。具体GitHub提供了多大的自由度,请看官方文档:https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions。

你可能感兴趣的:(重在参与,请您投票 :))