Skip to content
Snippets Groups Projects
Unverified Commit ea17aa78 authored by Nemanja Glumac's avatar Nemanja Glumac Committed by GitHub
Browse files

Parameterize E2E matrix (#34431)

parent 009000e5
No related branches found
No related tags found
No related merge requests found
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 folderContext = [
"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",
];
const specialContext = ["oss-subset", "slow"];
const defaultConfig = folderContext.map(folder => {
return {
"java-version": java,
folder,
runner: defaultRunner,
edition: "ee",
};
});
const extraConfig = specialContext.map(s => {
return {
"java-version": java,
context: s,
runner: getRunner(s),
edition: getEdition(s),
};
});
function getRunner(context) {
return context === "slow" ? beefierRunner : defaultRunner;
}
function getEdition(context) {
return context === "oss-subset" ? "oss" : "ee";
}
const matrix = { include: [...defaultConfig, ...extraConfig] };
return matrix;
......@@ -39,13 +39,25 @@ jobs:
token: ${{ github.token }}
filters: .github/file-paths.yaml
e2e-matrix-builder:
runs-on: ubuntu-22.04
timeout-minutes: 5
outputs:
matrix: ${{ steps.e2e-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- name: Generate matrix for E2E tests
id: e2e-matrix
uses: ./.github/actions/build-e2e-matrix
download_uberjar:
runs-on: ubuntu-22.04
timeout-minutes: 10
needs: files-changed
needs: [files-changed, e2e-matrix-builder]
if: |
!cancelled() &&
github.event.pull_request.draft == false &&
needs.e2e-matrix-builder.result == 'success' &&
needs.files-changed.outputs.e2e_specs == 'true' &&
needs.files-changed.outputs.e2e_all != 'true'
strategy:
......@@ -107,10 +119,11 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build:
needs: [download_uberjar, files-changed]
needs: [download_uberjar, files-changed, e2e-matrix-builder]
if: |
!cancelled() &&
github.event.pull_request.draft == false &&
needs.e2e-matrix-builder.result == 'success' &&
needs.download_uberjar.result == 'skipped' &&
needs.files-changed.outputs.e2e_all == 'true'
runs-on: ubuntu-22.04
......@@ -137,7 +150,7 @@ jobs:
uses: ./.github/actions/prepare-uberjar-artifact
e2e-tests:
needs: [build, files-changed, test-run-id, download_uberjar]
needs: [build, files-changed, test-run-id, download_uberjar, e2e-matrix-builder]
if: |
!cancelled() &&
(needs.download_uberjar.result == 'success' || needs.build.result == 'success')
......@@ -158,41 +171,7 @@ jobs:
TZ: US/Pacific # to make node match the instance tz
strategy:
fail-fast: false
matrix:
runner: [ubuntu-22.04]
java-version: [11]
edition: [ee]
folder:
- "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"
include:
- edition: oss
runner: ubuntu-22.04
context: oss-subset
java-version: 11
- edition: ee
java-version: 11
context: slow
runner: buildjet-2vcpu-ubuntu-2204
matrix: ${{ fromJSON(needs.e2e-matrix-builder.outputs.matrix) }}
services:
maildev:
image: maildev/maildev:2.0.5
......@@ -375,7 +354,7 @@ jobs:
if-no-files-found: ignore
e2e-tests-skipped-stub:
needs: [build, files-changed, download_uberjar]
needs: [build, files-changed, download_uberjar, e2e-matrix-builder]
if: |
!cancelled() &&
needs.files-changed.outputs.e2e_all == 'false' &&
......@@ -386,42 +365,7 @@ jobs:
name: e2e-tests-${{ matrix.folder }}${{ matrix.context }}-${{ matrix.edition }}
strategy:
fail-fast: false
matrix:
runner: [ubuntu-22.04]
java-version: [11]
edition: [ee]
folder:
- "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"
include:
- edition: oss
runner: ubuntu-22.04
java-version: 11
context: oss-subset
- edition: ee
runner: ubuntu-latest
java-version: 11
context: slow
matrix: ${{ fromJSON(needs.e2e-matrix-builder.outputs.matrix) }}
steps:
- run: |
echo "Didn't run due to conditional filtering"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment