From 40b73f7962206946aab5ff15412471b22c205a72 Mon Sep 17 00:00:00 2001 From: xiangzihao <460888207@qq.com> Date: Wed, 6 Apr 2022 09:33:41 +0800 Subject: [PATCH] [Improve][CI] improve ci checking (#9325) --- .github/workflows/backend.yml | 30 +++++++++++++++++++++++++++++- .github/workflows/docs.yml | 4 +++- .github/workflows/e2e.yml | 17 +++++++++++++++-- .github/workflows/unit-test.yml | 30 +++++++++++++++++++++++++++++- 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml index 7dfe3f730e..bb2b65c56d 100644 --- a/.github/workflows/backend.yml +++ b/.github/workflows/backend.yml @@ -38,8 +38,22 @@ concurrency: cancel-in-progress: true jobs: + paths-filter: + name: Backend-Path-Filter + runs-on: ubuntu-latest + outputs: + ignore: ${{ steps.filter.outputs.ignore }} + steps: + - uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 + id: filter + with: + filters: | + ignore: + - '(docs/**|dolphinscheduler-ui/**|dolphinscheduler-ui-next/**)' build: - name: Build + name: Backend-Build + needs: paths-filter + if: ${{ needs.paths-filter.outputs.ignore == 'false' }} runs-on: ubuntu-latest timeout-minutes: 30 steps: @@ -63,3 +77,17 @@ jobs: -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 - name: Check dependency license run: tools/dependencies/check-LICENSE.sh + result: + name: Build + runs-on: ubuntu-latest + timeout-minutes: 30 + needs: [ build ] + if: always() + steps: + - name: Status + run: | + if [[ ${{ needs.build.result }} == 'success' || ${{ needs.paths-filter.outputs.ignore == 'true' }} ]]; then + echo "Passed!" + else + exit -1 + fi diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 32e2f8e90f..9a1422da17 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -18,6 +18,8 @@ name: Docs on: pull_request: + paths: + - 'docs/**' concurrency: group: doc-${{ github.event.pull_request.number || github.ref }} @@ -47,6 +49,6 @@ jobs: - uses: actions/checkout@v2 - run: sudo npm install -g markdown-link-check@3.10.0 - run: | - for file in $(find . -name "*.md"); do + for file in $(find ./docs -name "*.md"); do markdown-link-check -c .dlc.json -q "$file" done diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 60e746b8ae..f35c8d13df 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -29,8 +29,22 @@ concurrency: jobs: + paths-filter: + name: E2E-Path-Filter + runs-on: ubuntu-latest + outputs: + ignore: ${{ steps.filter.outputs.ignore }} + steps: + - uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 + id: filter + with: + filters: | + ignore: + - '(docs/**)' build: name: E2E-Build + needs: paths-filter + if: ${{ needs.paths-filter.outputs.ignore == 'false' }} runs-on: ubuntu-latest timeout-minutes: 20 steps: @@ -137,7 +151,6 @@ jobs: name: recording-${{ matrix.case.name }} path: ${{ env.RECORDING_PATH }} retention-days: 1 - result: name: E2E runs-on: ubuntu-latest @@ -147,7 +160,7 @@ jobs: steps: - name: Status run: | - if [[ ${{ needs.e2e.result }} == 'success' ]]; then + if [[ ${{ needs.e2e.result }} == 'success' || ${{ needs.paths-filter.outputs.ignore == 'true' }} ]]; then echo "Passed!" else exit -1 diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 4043e2e598..b666741107 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -36,8 +36,22 @@ concurrency: cancel-in-progress: true jobs: + paths-filter: + name: Unit-Test-Path-Filter + runs-on: ubuntu-latest + outputs: + ignore: ${{ steps.filter.outputs.ignore }} + steps: + - uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721 + id: filter + with: + filters: | + ignore: + - '(docs/**)' unit-test: - name: Unit Test + name: Unit-Test + needs: paths-filter + if: ${{ needs.paths-filter.outputs.ignore == 'false' }} runs-on: ubuntu-latest timeout-minutes: 30 steps: @@ -96,3 +110,17 @@ jobs: with: name: unit-test-logs path: ${LOG_DIR} + result: + name: Unit Test + runs-on: ubuntu-latest + timeout-minutes: 30 + needs: [ unit-test ] + if: always() + steps: + - name: Status + run: | + if [[ ${{ needs.unit-test.result }} == 'success' || ${{ needs.paths-filter.outputs.ignore == 'true' }} ]]; then + echo "Passed!" + else + exit -1 + fi