Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
action.yml 1.74 KiB
name: Build E2E Matrix
description: Build and output a custom matrix for E2E tests.

outputs:
  matrix:
    description: Parameterized matrix in JSON format
    value: ${{ steps.matrix.outputs.result }}

runs:
  using: "composite"
  steps:
    - uses: actions/github-script@v6
      id: matrix
      with:
        script: |
          const java = 11;

          const defaultRunner = "ubuntu-22.04";
          const beefierRunner = "buildjet-2vcpu-ubuntu-2204";

          const defaultOptions = {
            "java-version": java,
            runner: defaultRunner,
            edition: "ee",
            context: "folder"
          };

          const testSets = [
            ["actions", {} ],
            ["admin", {} ],
            ["admin-2", {} ],
            ["binning", {} ],
            ["collections", {} ],
            ["custom-column", {} ],
            ["dashboard", {} ],
            ["dashboard-cards", {} ],
            ["dashboard-filters", {} ],
            ["embedding", {} ],
            ["filters", {} ],
            ["joins", {} ],
            ["models", {} ],
            ["native", {} ],
            ["native-filters", {} ],
            ["onboarding", {} ],
            ["organization", {} ],
            ["permissions", {} ],
            ["question", {} ],
            ["sharing", {} ],
            ["visualizations", {} ],
            ["oss-subset", { edition: 'oss', context: "special" } ],
            ["slow", { runner: beefierRunner, context: "special" } ],
          ];

          const config = testSets.map(([name, specialOptions]) => {
            return {
              ...defaultOptions,
              ...specialOptions,
              name,
            }
          });

          const matrix = { include: config };
          return matrix;