You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/08/28 23:20:13 UTC

(superset) 01/01: feat(ci): add nightly-only opt-out for heavy testcontainers dialects

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch feat/testcontainers-nightly-only-gating
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 72c6f950534bee44935de2c5a980957a009bfeca
Author: Superset Dev <de...@superset.apache.org>
AuthorDate: Fri Aug 28 16:19:18 2026 -0700

    feat(ci): add nightly-only opt-out for heavy testcontainers dialects
    
    A future dialect whose image is too heavy for per-PR CI (a multi-service
    cluster, a many-GB image, a slow licensed installer) can set
    nightly_only: true on its matrix entry to run only on the cron or a
    manual workflow_dispatch, never on pull_request. No existing dialect
    uses it yet -- this just lays the groundwork for candidates like SAP
    HANA, Teradata, or Apache Druid.
---
 .github/workflows/testcontainers.yml | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/.github/workflows/testcontainers.yml b/.github/workflows/testcontainers.yml
index 9cb6a92426f..770b58e5339 100644
--- a/.github/workflows/testcontainers.yml
+++ b/.github/workflows/testcontainers.yml
@@ -9,6 +9,13 @@ name: Testcontainers
 # just from Superset's changes) and on pull_request, scoped via `paths` to
 # only PRs that actually touch this test suite or the workflow itself, so
 # unrelated PRs across the repo are never affected.
+#
+# A matrix entry can set `nightly_only: true` to run only on the cron (or a
+# manual workflow_dispatch), never on pull_request -- for a dialect whose
+# image is too heavy (a multi-service cluster, a many-GB image, a slow
+# licensed installer) to justify adding its wall-clock/resource cost to
+# every PR that merely touches this suite. Omit the field entirely for a
+# normal dialect; it isn't nightly-only by default.
 permissions:
   contents: read
 
@@ -35,6 +42,15 @@ concurrency:
 jobs:
   testcontainers:
     runs-on: ubuntu-26.04
+    # Matrix expansion happens before this is evaluated, so `matrix` here is
+    # this specific dialect's own entry, not the whole list -- a dialect
+    # without `nightly_only` set evaluates the left side true (unset is
+    # null, and `null != true` is true) and always runs; one WITH it set
+    # only runs on the cron or a manual dispatch, never on pull_request.
+    if: >-
+      matrix.nightly_only != true ||
+      github.event_name == 'schedule' ||
+      github.event_name == 'workflow_dispatch'
     strategy:
       fail-fast: false
       matrix: