From abaf6b133751d91b63b28bd0487ca5bbd88b906c Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 5 Jul 2026 22:00:53 +0800 Subject: [PATCH] ci: extract external E2E into dedicated post-merge workflow (#38426) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: yyh --- .github/workflows/main-ci.yml | 30 ++---------------- .github/workflows/post-merge.yml | 54 ++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/post-merge.yml diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index b04b135ca7d..05b7b6b4301 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -6,8 +6,6 @@ on: merge_group: branches: ["main"] types: [checks_requested] - push: - branches: ["main"] permissions: actions: write @@ -44,7 +42,6 @@ jobs: api-changed: ${{ steps.changes.outputs.api }} cli-changed: ${{ steps.changes.outputs.cli }} e2e-changed: ${{ steps.changes.outputs.e2e }} - external-e2e-changed: ${{ steps.changes.outputs.external_e2e }} web-changed: ${{ steps.changes.outputs.web }} vdb-changed: ${{ steps.changes.outputs.vdb }} migration-changed: ${{ steps.changes.outputs.migration }} @@ -100,25 +97,6 @@ jobs: - 'docker/envs/middleware.env.example' - '.github/workflows/web-e2e.yml' - '.github/actions/setup-web/**' - external_e2e: - - 'e2e/features/agent-v2/**' - - 'e2e/scripts/**' - - 'e2e/support/**' - - '.github/workflows/web-e2e.yml' - - '.github/actions/setup-web/**' - - 'dify-agent/**' - - 'api/clients/agent_backend/**' - - 'api/core/app/apps/agent_app/**' - - 'api/core/workflow/nodes/agent_v2/**' - - 'api/controllers/console/agent/**' - - 'api/services/agent/**' - - 'api/core/plugin/**' - - 'api/services/plugin/**' - - 'api/core/tools/**' - - 'api/services/tools/**' - - 'web/features/agent-v2/**' - - 'web/app/(commonLayout)/roster/**' - - 'web/app/components/workflow/nodes/agent-v2/**' vdb: - 'api/core/rag/datasource/**' - 'api/tests/integration_tests/vdb/**' @@ -342,10 +320,8 @@ jobs: needs: - pre_job - check-changes - if: needs.pre_job.outputs.should_skip != 'true' && (needs.check-changes.outputs.e2e-changed == 'true' || needs.check-changes.outputs.external-e2e-changed == 'true') + if: needs.pre_job.outputs.should_skip != 'true' && needs.check-changes.outputs.e2e-changed == 'true' uses: ./.github/workflows/web-e2e.yml - with: - run-external-runtime: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.check-changes.outputs.external-e2e-changed == 'true' }} secrets: inherit web-e2e-skip: @@ -353,7 +329,7 @@ jobs: needs: - pre_job - check-changes - if: needs.pre_job.outputs.should_skip != 'true' && needs.check-changes.outputs.e2e-changed != 'true' && needs.check-changes.outputs.external-e2e-changed != 'true' + if: needs.pre_job.outputs.should_skip != 'true' && needs.check-changes.outputs.e2e-changed != 'true' runs-on: depot-ubuntu-24.04 steps: - name: Report skipped web full-stack e2e @@ -372,7 +348,7 @@ jobs: - name: Finalize Web Full-Stack E2E status env: SHOULD_SKIP_WORKFLOW: ${{ needs.pre_job.outputs.should_skip }} - TESTS_CHANGED: ${{ needs.check-changes.outputs.e2e-changed == 'true' || needs.check-changes.outputs.external-e2e-changed == 'true' }} + TESTS_CHANGED: ${{ needs.check-changes.outputs.e2e-changed }} RUN_RESULT: ${{ needs.web-e2e-run.result }} SKIP_RESULT: ${{ needs.web-e2e-skip.result }} run: | diff --git a/.github/workflows/post-merge.yml b/.github/workflows/post-merge.yml new file mode 100644 index 00000000000..e275836edb7 --- /dev/null +++ b/.github/workflows/post-merge.yml @@ -0,0 +1,54 @@ +name: Post-Merge Checks + +on: + push: + branches: ["main"] + +permissions: + contents: read + +concurrency: + group: post-merge-${{ github.sha }} + cancel-in-progress: false + +jobs: + check-changes: + name: Check Changed Files + runs-on: depot-ubuntu-24.04 + outputs: + external-e2e-changed: ${{ steps.changes.outputs.external_e2e }} + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 + id: changes + with: + filters: | + external_e2e: + - 'e2e/features/agent-v2/**' + - 'e2e/scripts/**' + - 'e2e/support/**' + - '.github/workflows/post-merge.yml' + - '.github/workflows/web-e2e.yml' + - '.github/actions/setup-web/**' + - 'dify-agent/**' + - 'api/clients/agent_backend/**' + - 'api/core/app/apps/agent_app/**' + - 'api/core/workflow/nodes/agent_v2/**' + - 'api/controllers/console/agent/**' + - 'api/services/agent/**' + - 'api/core/plugin/**' + - 'api/services/plugin/**' + - 'api/core/tools/**' + - 'api/services/tools/**' + - 'web/features/agent-v2/**' + - 'web/app/(commonLayout)/roster/**' + - 'web/app/components/workflow/nodes/agent-v2/**' + + external-e2e: + name: External Runtime E2E + needs: check-changes + if: needs.check-changes.outputs.external-e2e-changed == 'true' + uses: ./.github/workflows/web-e2e.yml + with: + run-external-runtime: true + secrets: inherit