Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 8 additions & 8 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,17 @@
#

github:
description: Make stream processing easier! Easy-to-use streaming application development framework and operation platform.
description: The Open Control Plane for Real-Time Data
homepage: https://streampark.apache.org/
labels:
- streaming
- operation-platform
- development-framework
- easy-to-use
- etl-pipeline
- apache
- streampark
- data-computing
- control-plane
- flink
- spark
- lakehouse
- cloud-native
- kubernetes
enabled_merge_buttons:
squash: true
merge: false
Expand All @@ -37,7 +38,6 @@ github:
strict: false
contexts:
- Backend - Result
- E2E - Result
- Docs - Result
- Frontend - Result
- Unit-Test - Result
Expand Down
1 change: 0 additions & 1 deletion .github/actions/workflow-telemetry-action
Submodule workflow-telemetry-action deleted from f974e0
3 changes: 0 additions & 3 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ labelPRBasedOnFilePath:
component=streampark-console-webapp:
- streampark-console/streampark-console-webapp/**

component=streampark-e2e:
- streampark-e2e/**/*

component=streampark-flink:
- streampark-flink/**/*

Expand Down
231 changes: 7 additions & 224 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,238 +15,21 @@
# limitations under the License.
#

name: E2E Required Check Compatibility

on:
pull_request:
push:
branches:
- dev
- release-*
- dev-*

name: E2E

concurrency:
group: e2e-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true


# The retired E2E workflow remains a required check on dev until the .asf.yaml change in this PR
# is merged and synchronized to GitHub branch protection. Remove this compatibility workflow after
# that synchronization completes.
jobs:
paths-filter:
name: E2E-Path-Filter
runs-on: ubuntu-latest
outputs:
not-ignore: ${{ steps.filter.outputs.not-ignore }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d
id: filter
with:
filters: |
not-ignore:
- '!**/*.md'
license-header:
name: License header
runs-on: ubuntu-latest
if: ${{ (needs.paths-filter.outputs.not-ignore == 'true') || (github.event_name == 'push') }}
needs: paths-filter
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Check license header
uses: apache/skywalking-eyes/header@main
code-style:
if: github.repository == 'apache/streampark'
name: Code style
runs-on: ubuntu-latest
needs: license-header
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Check codestyle
run: ./mvnw -B -q -nsu checkstyle:check spotless:check
build:
name: E2E-Build
runs-on: ubuntu-latest
needs: code-style
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'adopt'
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
restore-keys: ${{ runner.os }}-maven-
- name: Build Image
run: |
./build.sh \
&& docker build -f docker/Dockerfile . -t apache/streampark:ci
- name: Export Docker Images
run: |
docker save apache/streampark:ci -o /tmp/standalone-image.tar \
&& du -sh /tmp/standalone-image.tar
- uses: actions/upload-artifact@v4
name: Upload Docker Images
with:
name: standalone-image
path: /tmp/standalone-image.tar
retention-days: 1
e2e:
name: ${{ matrix.case.name }}
needs: build
runs-on: ubuntu-latest
timeout-minutes: 180
strategy:
matrix:
case:
- name: EnvironmentTest
class: org.apache.streampark.e2e.cases.EnvironmentTest
- name: AlarmTest
class: org.apache.streampark.e2e.cases.AlarmTest
- name: UserManagementTest
class: org.apache.streampark.e2e.cases.UserManagementTest
- name: RoleManagementTest
class: org.apache.streampark.e2e.cases.RoleManagementTest
- name: TeamManagementTest
class: org.apache.streampark.e2e.cases.TeamManagementTest
- name: MemberManagementTest
class: org.apache.streampark.e2e.cases.MemberManagementTest
- name: ExternalLinkTest
class: org.apache.streampark.e2e.cases.ExternalLinkTest
- name: YarnQueueTest
class: org.apache.streampark.e2e.cases.YarnQueueTest
- name: TokenManagementTest
class: org.apache.streampark.e2e.cases.TokenManagementTest
- name: UploadManagementTest
class: org.apache.streampark.e2e.cases.UploadManagementTest
- name: ProjectsManagementTest
class: org.apache.streampark.e2e.cases.ProjectsManagementTest
- name: VariableManagementTest
class: org.apache.streampark.e2e.cases.VariableManagementTest

- name: FlinkOnRemoteClusterDeployTest
class: org.apache.streampark.e2e.cases.Flink120OnRemoteClusterDeployTest

# - name: FlinkOnYarnClusterDeployTest
# class: org.apache.streampark.e2e.cases.Flink120OnYarnClusterDeployTest

# - name: FlinkSQLOnYarnTest
# class: org.apache.streampark.e2e.cases.FlinkSQL120OnYarnTest

#- name: Flink117OnRemoteClusterDeployTest
# class: org.apache.streampark.e2e.cases.Flink117OnRemoteClusterDeployTest
#- name: Flink116OnRemoteClusterDeployTest
# class: org.apache.streampark.e2e.cases.Flink116OnRemoteClusterDeployTest

# - name: Flink116OnYarnClusterDeployTest
# class: org.apache.streampark.e2e.cases.Flink116OnYarnClusterDeployTest
# - name: Flink117OnYarnClusterDeployTest
# class: org.apache.streampark.e2e.cases.Flink117OnYarnClusterDeployTest

# - name: FlinkSQL116OnYarnTest
# class: org.apache.streampark.e2e.cases.FlinkSQL116OnYarnTest
# - name: FlinkSQL117OnYarnTest
# class: org.apache.streampark.e2e.cases.FlinkSQL117OnYarnTest
env:
RECORDING_PATH: /tmp/recording-${{ matrix.case.name }}
steps:
- name: Free Disk Space
# refer: https://github.com/jlumbroso/free-disk-space
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
with:
dotnet: true
android: true
haskell: true
codeql: true
docker-images: true
large-packages: true
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'adopt'
- name: Collect Workflow Telemetry
uses: ./.github/actions/workflow-telemetry-action
with:
comment_on_pr: false
- name: Cache local Maven repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-e2e
restore-keys: ${{ runner.os }}-maven-
- uses: actions/download-artifact@v4
name: Download Docker Images
with:
name: standalone-image
path: /tmp
- name: Load Docker Images
run: |
docker load -i /tmp/standalone-image.tar \
&& rm -f /tmp/standalone-image.tar
- name: Pre-pull Testcontainers images
run: |
pull_with_retry() {
local image="$1"
for attempt in $(seq 1 8); do
if docker pull "$image"; then
return 0
fi
echo "Failed to pull $image (attempt $attempt), retrying in ${attempt}0s..."
sleep $((attempt * 10))
done
echo "Failed to pull $image after 8 attempts"
return 1
}
pull_with_retry testcontainers/ryuk:0.7.0
pull_with_retry selenium/standalone-chrome:4.13.0 || true
- name: Run Test
run: |
./mvnw -B -f streampark-e2e/pom.xml -am \
-DfailIfNoTests=false \
-Dtest=${{ matrix.case.class }} test
- uses: actions/upload-artifact@v4
if: always()
name: Upload Recording
with:
name: recording-${{ matrix.case.name }}
path: ${{ env.RECORDING_PATH }}
retention-days: 1
- uses: actions/upload-artifact@v4
if: always()
name: Upload Projects Build Logs
with:
name: ${{ matrix.case.name }}-projects-build-logs
path: ~/streampark_build_logs
retention-days: 1
result:
name: E2E - Result
runs-on: ubuntu-latest
timeout-minutes: 30
needs: [ paths-filter, license-header, code-style, build, e2e ]
if: always()
steps:
- name: Status
run: |
if [[ ${{ needs.paths-filter.outputs.not-ignore }} == 'false' && ${{ github.event_name }} == 'pull_request' ]]; then
echo "Skip E2E!"
exit 0
fi
if [[ ${{ needs.e2e.result }} != 'success' ]]; then
echo "E2E Failed!"
exit 1
fi
- name: Report retired E2E status
run: echo "The legacy E2E suite is retired for the StreamPark 3.0 architecture transition."
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,4 @@ hs_err_pid*
**/node
dist/
dist-license-check/
.pnpm-store
Loading
Loading