This is an automated email from the ASF dual-hosted git repository. kezhenxu94 pushed a commit to branch ci in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
commit 70793dac01c42a9268164394d7d8267da86173e7 Author: kezhenxu94 <[email protected]> AuthorDate: Tue Jun 21 21:36:19 2022 +0800 Improve CI jobs to reduce waiting time --- .github/workflows/backend.yml | 163 +++++++++++++++++++++++++++--------------- 1 file changed, 107 insertions(+), 56 deletions(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 7e196a909..afffdd03d 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -19,43 +19,96 @@ name: Backend on: push: + branches: + - ci pull_request: paths-ignore: - - 'docs/**' - - '**/*.md' + - "docs/**" + - "**/*.md" concurrency: group: backend-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: - build-on-ubuntu: - name: Build-on-ubuntu + license-header: + if: github.repository == "apache/incubator-seatunnel" + name: License header runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Check license header + uses: apache/skywalking-eyes@985866ce7e324454f61e22eb2db2e998db09d6f3 + + code-style: + if: github.repository == "apache/incubator-seatunnel" + name: Code style + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Check code style + run: ./mvnw --batch --quiet --no-snapshot-updates clean checkstyle:check + + dependency-license: + if: github.repository == "apache/incubator-seatunnel" + name: Dependency licenses + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '8' + cache: 'maven' + - uses: actions/download-artifact@v3 + with: + name: dist + path: dist + - name: Check Dependencies Licenses + run: tools/dependencies/check-LICENSE.sh + + sanity-check: + if: github.repository == "apache/incubator-seatunnel" + name: Sanity check results + needs: [ license-header, dependency-license, code-style ] + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Check results + run: | + [[ ${{ needs.dependency-license.result }} == 'success' ]] || exit 1; + [[ ${{ needs.license-header.result }} == 'success' ]] || exit 1; + [[ ${{ needs.code-style.result }} == 'success' ]] || exit 1; + + build: + if: github.repository == "apache/incubator-seatunnel" + name: Build + needs: [ sanity-check ] strategy: matrix: - java: ['8', '11'] - timeout-minutes: 50 - env: - MAVEN_OPTS: -Xmx2G -Xms2G + java: [ "8", "11" ] + os: [ "ubuntu-latest", "windows-latest" ] + runs-on: ${{ matrix.os }} + timeout-minutes: 30 steps: - - uses: actions/checkout@v2 - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 with: - java-version: ${{ matrix.java }} - distribution: 'adopt' - - name: Cache local Maven repository - uses: actions/cache@v2 + submodules: true + - uses: actions/setup-java@v3 with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Check Style - run: | - ./mvnw -T 2C -B checkstyle:check --no-snapshot-updates - - name: Build and Package + distribution: 'temurin' + java-version: ${{ matrix.java }} + cache: 'maven' + - name: Build distribution tar run: | ./mvnw -B install scalastyle:check \ -Dmaven.test.skip=true \ @@ -66,47 +119,45 @@ jobs: -Dmaven.wagon.http.retryHandler.count=3 \ -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 \ --no-snapshot-updates - - name: Check dependency license - run: bash ./tools/dependencies/checkLicense.sh + + unit-test: + name: Unit Test + runs-on: ${{ matrix.os }} + needs: [ sanity-check ] + strategy: + matrix: + java: [ "8", "11" ] + os: [ "ubuntu-latest", "windows-latest" ] + timeout-minutes: 50 + steps: + - uses: actions/checkout@v2 + - name: Set up JDK ${{ matrix.java }} + uses: actions/setup-java@v3 + with: + java-version: ${{ matrix.java }} + distribution: "temurin" + cache: "maven" - name: Run Unit tests run: | ./mvnw -T 2C -B clean verify -Dmaven.test.skip=false -Dcheckstyle.skip=true -Dscalastyle.skip=true -Dlicense.skipAddThirdParty=true --no-snapshot-updates - - name: Run Integration tests - run: | - ./mvnw -T 2C -B verify -DskipUT=true -DskipIT=false -Dcheckstyle.skip=true -Dscalastyle.skip=true -Dlicense.skipAddThirdParty=true --no-snapshot-updates - build-on-windows: - name: Build-on-windows - runs-on: windows-latest + + integration-test: + name: Integration Test + runs-on: ${{ matrix.os }} + needs: [ sanity-check ] strategy: matrix: - java: ['8'] + java: [ "8", "11" ] + os: [ "ubuntu-latest", "windows-latest" ] timeout-minutes: 50 - env: - MAVEN_OPTS: -Xmx2G -Xms2G steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v2 - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v3 with: - java-version: ${{ matrix.java }} - distribution: 'temurin' - cache: 'maven' - - name: Cache local Maven repository - uses: actions/cache@v2 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Check Style - shell: cmd - run: | - .\mvnw.cmd -T 2C -B checkstyle:check -nsu - - name: Build and Package - shell: cmd - run: | - .\mvnw.cmd -B install scalastyle:check -Dmaven.test.skip=true -Dcheckstyle.skip=true -Dlicense.skipAddThirdParty=true -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.count=3 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -nsu - - name: Run Unit tests - shell: cmd + java-version: ${{ matrix.java }} + distribution: "temurin" + cache: "maven" + - name: Run Integration tests run: | - .\mvnw.cmd -T 2C -B clean verify -Dmaven.test.skip=false -Dcheckstyle.skip=true -Dscalastyle.skip=true -Dlicense.skipAddThirdParty=true -nsu + ./mvnw -T 2C -B verify -DskipUT=true -DskipIT=false -Dcheckstyle.skip=true -Dscalastyle.skip=true -Dlicense.skipAddThirdParty=true --no-snapshot-updates
