This is an automated email from the ASF dual-hosted git repository.
corgy pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 6d9e0a1755 Revert "[Improve][CI] Optimize CI" (#9971)
6d9e0a1755 is described below
commit 6d9e0a17556f780fe520e2015f767c1921be4f16
Author: Jast <[email protected]>
AuthorDate: Tue Oct 21 21:03:30 2025 +0800
Revert "[Improve][CI] Optimize CI" (#9971)
---
.github/workflows/backend.yml | 209 ++++++++++++++++-------------------
tools/github/ci_duration_analysis.py | 160 ---------------------------
tools/github/free_disk_space.sh | 124 ++++-----------------
3 files changed, 121 insertions(+), 372 deletions(-)
diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml
index 5da6224955..7121917cfa 100644
--- a/.github/workflows/backend.yml
+++ b/.github/workflows/backend.yml
@@ -61,7 +61,7 @@ jobs:
helm-chart-check:
name: Check Helm Chart Syntax
- needs: [ license-header, code-style ]
+ needs: [ license-header, code-style]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -275,18 +275,10 @@ jobs:
echo $build_modules
echo "modules=$build_modules" >> $GITHUB_OUTPUT
- delayed-scheduling:
- name: Delayed Scheduling
- needs: [ changes, sanity-check ]
- runs-on: ubuntu-latest
- steps:
- - name: Sleep for 20 seconds
- run: sleep 20s
-
dependency-license:
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
name: Dependency licenses
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
@@ -311,7 +303,7 @@ jobs:
document:
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.docs ==
'true'
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
name: Build website
runs-on: ubuntu-latest
timeout-minutes: 60
@@ -340,10 +332,10 @@ jobs:
seatunnel-ui:
if: needs.changes.outputs.api == 'true'
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
name: Build SeaTunnel UI
runs-on: ubuntu-latest
- timeout-minutes: 20
+ timeout-minutes: 60
steps:
- name: Checkout PR
uses: actions/checkout@v3
@@ -365,7 +357,7 @@ jobs:
npm run build
unit-test:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || (needs.changes.outputs.api ==
'false' && needs.changes.outputs.ut-modules != '')
runs-on: ${{ matrix.os }}
strategy:
@@ -633,14 +625,14 @@ jobs:
MAVEN_OPTS: -Xmx2048m
engine-v2-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || needs.changes.outputs.engine-e2e == 'true'
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 80
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -658,7 +650,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
engine-k8s-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' ||
contains(needs.changes.outputs.it-modules, 'seatunnel-engine-k8s-e2e')
runs-on: ${{ matrix.os }}
strategy:
@@ -702,7 +694,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 100
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -748,7 +740,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
all-connectors-it-1:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -758,7 +750,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 60
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -774,13 +766,12 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 0`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
all-connectors-it-2:
- needs: [ changes, sanity-check, delayed-scheduling]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -790,7 +781,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 80
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -806,7 +797,6 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 1`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
@@ -822,7 +812,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 120
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -838,13 +828,12 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 2`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
all-connectors-it-4:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -854,7 +843,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 80
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -870,7 +859,6 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 3`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
@@ -886,7 +874,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 160
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -902,7 +890,6 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 4`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
@@ -918,7 +905,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 140
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -934,13 +921,12 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 5`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
all-connectors-it-7:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -950,7 +936,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 100
+ timeout-minutes: 150
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -966,7 +952,6 @@ jobs:
./mvnw help:evaluate -Dexpression=project.modules -q -DforceStdout
-pl :seatunnel-connector-v2-e2e >> /tmp/sub_module.txt
sub_modules=`python
tools/update_modules_check/update_modules_check.py sub /tmp/sub_module.txt`
run_it_modules=`python
tools/update_modules_check/update_modules_check.py sub_it_module "$sub_modules"
7 6`
- echo $run_it_modules
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
$run_it_modules -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
@@ -982,7 +967,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 100
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1000,7 +985,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-part-2:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1010,7 +995,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1028,7 +1013,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-part-3:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1038,7 +1023,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1056,7 +1041,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-part-4:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1066,7 +1051,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 20
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1084,7 +1069,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-part-5:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1094,7 +1079,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1112,7 +1097,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-part-6:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1122,7 +1107,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1168,7 +1153,7 @@ jobs:
MAVEN_OPTS: -Xmx4096m
jdbc-connectors-it-ddl:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true'
runs-on: ${{ matrix.os }}
env:
@@ -1178,7 +1163,7 @@ jobs:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1195,15 +1180,15 @@ jobs:
env:
MAVEN_OPTS: -Xmx4096m
- connector-redis-it:
+ kudu-connector-it:
needs: [ changes, sanity-check ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-redis-e2e')
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-kudu-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 160
+ timeout-minutes: 30
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1214,21 +1199,21 @@ jobs:
cache: 'maven'
- name: free disk space
run: tools/github/free_disk_space.sh
- - name: run redis connector integration test
+ - name: run kudu connector integration test
run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-redis-e2e -am -Pci
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-kudu-e2e -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
- kafka-connector-it:
+ amazonSqs-connector-it:
needs: [ changes, sanity-check ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-kafka-e2e')
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-amazonsqs-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 140
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1239,46 +1224,21 @@ jobs:
cache: 'maven'
- name: free disk space
run: tools/github/free_disk_space.sh
- - name: run kafka connector integration test
+ - name: run amazonsqs connector integration test
run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-kafka-e2e -am -Pci
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-amazonsqs-e2e -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
- connector-file-local-it:
+ kafka-connector-it:
needs: [ changes, sanity-check ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-file-local-e2e')
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- java: [ '8', '11' ]
- os: [ 'ubuntu-latest' ]
- timeout-minutes: 100
- 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: free disk space
- run: tools/github/free_disk_space.sh
- - name: run file local connector integration test
- run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-file-local-e2e -am -Pci
- env:
- MAVEN_OPTS: -Xmx4096m
-
- connector-file-sftp-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-file-sftp-e2e')
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-kafka-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 80
+ timeout-minutes: 140
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1289,21 +1249,21 @@ jobs:
cache: 'maven'
- name: free disk space
run: tools/github/free_disk_space.sh
- - name: run file sftp connector integration test
+ - name: run kafka connector integration test
run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-file-sftp-e2e -am -Pci
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-kafka-e2e -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
rocketmq-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-rocketmq-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 80
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1322,14 +1282,14 @@ jobs:
doris-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-doris-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 60
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1347,14 +1307,14 @@ jobs:
MAVEN_OPTS: -Xmx4096m
paimon-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-paimon-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 60
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1372,14 +1332,14 @@ jobs:
MAVEN_OPTS: -Xmx4096m
oracle-cdc-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
+ needs: [ changes, sanity-check ]
if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-cdc-oracle-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 150
steps:
- name: Checkout repository
uses: actions/checkout@v2
@@ -1401,15 +1361,15 @@ jobs:
echo 'running oracle cdc connector integration test...' && \
./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-cdc-oracle-e2e -am -Pci
- kudu-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-kudu-e2e')
+ connector-file-local-it:
+ needs: [ changes, sanity-check ]
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-file-local-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 40
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1420,21 +1380,21 @@ jobs:
cache: 'maven'
- name: free disk space
run: tools/github/free_disk_space.sh
- - name: run kudu connector integration test
+ - name: run file local connector integration test
run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-kudu-e2e -am -Pci
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-file-local-e2e -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
- amazonSqs-connector-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-amazonsqs-e2e')
+ connector-file-sftp-it:
+ needs: [ changes, sanity-check ]
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-file-sftp-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 30
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
@@ -1445,21 +1405,46 @@ jobs:
cache: 'maven'
- name: free disk space
run: tools/github/free_disk_space.sh
- - name: run amazonsqs connector integration test
+ - name: run file sftp connector integration test
run: |
- ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-amazonsqs-e2e -am -Pci
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-file-sftp-e2e -am -Pci
+ env:
+ MAVEN_OPTS: -Xmx4096m
+
+ connector-redis-it:
+ needs: [ changes, sanity-check ]
+ if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules, 'connector-redis-e2e')
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ java: [ '8', '11' ]
+ os: [ 'ubuntu-latest' ]
+ timeout-minutes: 180
+ 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: free disk space
+ run: tools/github/free_disk_space.sh
+ - name: run redis connector integration test
+ run: |
+ ./mvnw -B -T 1 verify -DskipUT=true -DskipIT=false
-D"license.skipAddThirdParty"=true -D"skip.ui"=true --no-snapshot-updates -pl
:connector-redis-e2e -am -Pci
env:
MAVEN_OPTS: -Xmx4096m
connector-sensorsdata-it:
- needs: [ changes, sanity-check, delayed-scheduling ]
- if: needs.changes.outputs.api == 'true' || needs.changes.outputs.engine ==
'true' || contains(needs.changes.outputs.it-modules,
'connector-sensorsdata-e2e')
+ needs: [ changes, sanity-check ]
+ if: needs.changes.outputs.api == 'true' ||
contains(needs.changes.outputs.it-modules, 'connector-sensorsdata-e2e')
runs-on: ${{ matrix.os }}
strategy:
matrix:
java: [ '8', '11' ]
os: [ 'ubuntu-latest' ]
- timeout-minutes: 30
+ timeout-minutes: 120
steps:
- uses: actions/checkout@v2
- name: Set up JDK ${{ matrix.java }}
diff --git a/tools/github/ci_duration_analysis.py
b/tools/github/ci_duration_analysis.py
deleted file mode 100644
index e89eb4e341..0000000000
--- a/tools/github/ci_duration_analysis.py
+++ /dev/null
@@ -1,160 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# !/usr/bin/python
-import json
-import math
-import sys
-from datetime import datetime
-import os
-import requests
-from tabulate import tabulate
-
-
-def fetch_jobs_from_api(api_url, token=None):
- try:
- headers = {}
- if token:
- headers["Authorization"] = f"Bearer {token}"
- response = requests.get(api_url, headers=headers)
- response.raise_for_status()
- return parse_jobs_from_data(response.json())
- except requests.exceptions.RequestException as e:
- raise ConnectionError(f"API request failed: {str(e)}")
-
-
-def _parse_single_job(job):
- job_info = {
- 'job_id': job.get('id'),
- 'name': job.get('name'),
- 'status': job.get('status'),
- 'conclusion': job.get('conclusion'),
- }
-
- # Calculate the total time consumed
- try:
- start_time = datetime.fromisoformat(job['started_at'].replace('Z',
'+00:00'))
- end_time = datetime.fromisoformat(job['completed_at'].replace('Z',
'+00:00'))
- duration_seconds = (end_time - start_time).total_seconds()
- job_info['started_at'] = start_time.strftime("%Y-%m-%d %H:%M:%S")
- job_info['total_duration_seconds'] = round(duration_seconds, 2)
- job_info['total_duration_minutes'] = round(duration_seconds / 60, 2)
- except (KeyError, ValueError) as e:
- job_info['total_duration_seconds'] = None
- job_info['total_duration_minutes'] = None
- print(f"Warning: Failed to parse the time of task {job.get('id')} -
{str(e)}")
-
- # Parsing step information
- job_info['steps'] = []
- for step in job.get('steps', []):
- try:
- step_start =
datetime.fromisoformat(step['started_at'].replace('Z', '+00:00'))
- step_end =
datetime.fromisoformat(step['completed_at'].replace('Z', '+00:00'))
- step_duration = (step_end - step_start).total_seconds()
-
- job_info['steps'].append({
- 'name': step.get('name'),
- 'number': step.get('number'),
- 'status': step.get('status'),
- 'conclusion': step.get('conclusion'),
- 'duration_seconds': round(step_duration, 2)
- })
- except (KeyError, ValueError) as e:
- print(f"Warning: Failed to parse time for step {step.get('name')}
- {str(e)}")
-
- return job_info
-
-
-def _parse_jobs_batch(data):
- if 'jobs' not in data:
- raise KeyError("The data does not contain the 'jobs' field.")
- jobs = data['jobs']
- jobs.sort(
- key=lambda x: datetime.fromisoformat(x["started_at"].replace("Z",
"+00:00"))
- )
- return [_parse_single_job(job) for job in jobs]
-
-
-def parse_jobs_from_file(file_path):
- if not os.path.exists(file_path):
- raise FileNotFoundError(f"File not exist: {file_path}")
-
- with open(file_path, 'r', encoding='utf-8') as f:
- try:
- data = json.load(f)
- except json.JSONDecodeError as e:
- raise ValueError(f"JSON parsing error: {str(e)}")
-
- return _parse_jobs_batch(data)
-
-
-def parse_jobs_from_data(data):
- return _parse_jobs_batch(data)
-
-
-def print_job_summary(parsed_jobs):
- success_jobs = [job for job in parsed_jobs if job['conclusion'] ==
'success']
- print(f"A total of {len(parsed_jobs)} tasks were parsed, among which
{len(success_jobs)} tasks were successful (success)\n")
-
- job_table_data = []
- headers = ["Sequence Number", "Job Name", "Job ID", "CONCLUSION",
"STARTED_AT",
- "Total Duration (Seconds)", "Total Duration (Minutes)",
"Expected"]
-
- for i, job in enumerate(success_jobs, 1):
- remainder = job['total_duration_minutes'] % 20
- cost = (math.ceil(job['total_duration_minutes'] / 20) + 1) * 20 if
remainder >= 10 else \
- (math.ceil(job['total_duration_minutes'] / 20)) * 20
- job_table_data.append([
- i, job['name'], job['job_id'], job['conclusion'],job['started_at'],
- job['total_duration_seconds'], job['total_duration_minutes'], cost
- ])
-
- print("Overview of the Task:")
- print(tabulate(job_table_data, headers=headers, tablefmt="pipe"))
- print()
-
- for i, job in enumerate(success_jobs, 1):
- print(f"\nTask {i}: The 3 steps with the longest duration for
{job['name']}:")
- if job['steps']:
- sorted_steps = sorted(job['steps'], key=lambda x:
x['duration_seconds'], reverse=True)
- top_steps = sorted_steps[:3]
- step_table_data = [
- [s['name'], s['number'], s['status'], s['conclusion'],
s['duration_seconds']]
- for s in top_steps
- ]
- print(tabulate(step_table_data, headers=["Step name", "No",
"Status", "Conclusion", "Total Duration (seconds)"], tablefmt="pipe"))
- else:
- print("There is no step information for this task.")
- print("\n" + "-" * 80)
-
-
-if __name__ == "__main__":
- if len(sys.argv) not in (3, 4):
- print("Usage: python ci_duration_analysis.py <owner> <run_id> [token]")
- print("Usage: <owner> is a required parameter, example: hawk9821")
- print("Usage: <run_id> is a required parameter, example: 18013073919")
- print("Usage: [token] is a non-mandatory parameter. Token acquisition
method: GitHub -> Setting -> Developer Settings -> Personal access tokens ->
Tokens (classic)")
- sys.exit(1)
- owner = sys.argv[1]
- run_id = sys.argv[2]
- api_url =
f'https://api.github.com/repos/{owner}/seatunnel/actions/runs/{run_id}/jobs?page=1&per_page=100'
- token = sys.argv[3] if len(sys.argv) == 4 else None
-
- try:
- jobs_data = fetch_jobs_from_api(api_url, token)
- print_job_summary(jobs_data)
-
- except Exception as e:
- print(f"Processing failed: {str(e)}")
\ No newline at end of file
diff --git a/tools/github/free_disk_space.sh b/tools/github/free_disk_space.sh
index 18d6f168da..f9eee621f0 100755
--- a/tools/github/free_disk_space.sh
+++ b/tools/github/free_disk_space.sh
@@ -16,109 +16,33 @@
# limitations under the License.
#
-
-log_time_and_space() {
- local operation=$1
- local start_time=$2
- local start_space=$3
- # shellcheck disable=SC2155
- local end_time=$(date +%s)
- local duration=$((end_time - start_time))
- # shellcheck disable=SC2155
- local end_space=$(df -P / | tail -n 1 | awk '{print $4}')
- local freed_space=$((end_space - start_space))
- # shellcheck disable=SC2155
- local freed_gb=$(echo "scale=2; $freed_space / 1024 / 1024" | bc)
- echo
"------------------------------------------------------------------------------"
- echo "Operation: $operation"
- echo "Time taken: $duration seconds"
- echo "Freed disk space: $freed_gb GB"
- echo
"------------------------------------------------------------------------------"
- echo
-}
-
-get_available_space() {
- df -P / | tail -n 1 | awk '{print $4}'
-}
-
echo
"=============================================================================="
echo "Freeing up disk space on CI system"
echo
"=============================================================================="
-df -h
-# List 100 largest packages
-start_time=$(date +%s)
-start_space=$(get_available_space)
echo "Listing 100 largest packages"
-dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -n 100
-
-# Uninstall the faster ones first to preload and improve overall unloading
efficiency.
-# Clean up MongoDB
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo apt-get remove -y --purge '^mongodb-.*' > /dev/null 2>&1
-log_time_and_space "Remove MongoDB related packages" $start_time $start_space
-
-# Clean up .NET
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo apt-get remove -y --purge '^dotnet-.*' > /dev/null 2>&1
-log_time_and_space "Remove .NET related packages" $start_time $start_space
-
-# Clean up LLVM
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo apt-get remove -y --purge '^llvm-.*' > /dev/null 2>&1
-log_time_and_space "Remove LLVM related packages" $start_time $start_space
-
-# Clean up MySQL
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo apt-get remove -y --purge '^mysql-.*' > /dev/null 2>&1
-log_time_and_space "Remove MySQL related packages" $start_time $start_space
-
-# Clean up large packages
-packages_to_check="ruby3.2-doc powershell azure-cli google-cloud-sdk hhvm
google-chrome-stable firefox mono-devel libgl1-mesa-dri"
-for package in $packages_to_check; do
- start_time=$(date +%s)
- start_space=$(get_available_space)
- if dpkg -l | grep -q "$package"; then
- sudo apt-get -o APT::Install-Suggests="false" remove -y --purge
"$package" > /dev/null 2>&1
- log_time_and_space "Remove $package packages" $start_time $start_space
- fi
-done
-
-# Clean up apt cache
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo apt-get autoremove -y > /dev/null 2>&1
-sudo apt-get clean > /dev/null 2>&1
-log_time_and_space "Remove apt cache" $start_time $start_space
-
-# Clean up Android directories
-#start_time=$(date +%s)
-#start_space=$(get_available_space)
-#sudo nohup rm -rf /usr/local/lib/android > /dev/null 2>&1 &
-#log_time_and_space "Remove android directories" $start_time $start_space
-
-# Clean up large directories
-directories=(
- "/usr/local/.ghcup/"
- "/usr/share/dotnet/"
- "/usr/local/graalvm/"
- "/usr/local/share/powershell"
- "/usr/local/share/chromium"
- "/usr/local/share/boost"
- "/usr/local/lib/node_modules"
- "/opt/hostedtoolcache/CodeQL"
- "/opt/ghc"
-)
-start_time=$(date +%s)
-start_space=$(get_available_space)
-sudo bash -c 'for dir in "${@}"; do [ -d "$dir" ] && rm -rf "$dir" & done;
wait' _ "${directories[@]}"
-log_time_and_space "Remove other large directories" $start_time $start_space
-
-echo
"=============================================================================="
-echo "Disk cleanup completed"
-echo
"=============================================================================="
+dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100
+df -h
+echo "Removing large packages"
+sudo apt-get remove -y '^dotnet-.*'
+sudo apt-get remove -y '^llvm-.*'
+sudo apt-get remove -y 'php.*'
+sudo apt-get remove -y '^mongodb-.*'
+sudo apt-get remove -y '^mysql-.*'
+sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable
firefox powershell mono-devel libgl1-mesa-dri
+sudo apt-get autoremove -y
+sudo apt-get clean
+echo "Disk space before cleanup:"
+df -h
+echo "Removing large directories"
+sudo rm -rf /usr/share/dotnet/
+sudo rm -rf /usr/local/graalvm/
+sudo rm -rf /usr/local/.ghcup/
+sudo rm -rf /usr/local/share/powershell
+sudo rm -rf /usr/local/share/chromium
+sudo rm -rf /usr/local/share/boost
+sudo rm -rf /usr/local/lib/android
+sudo rm -rf /usr/local/lib/node_modules
+sudo rm -rf /opt/hostedtoolcache/CodeQL
+sudo rm -rf /opt/ghc
df -h
\ No newline at end of file