diff --git a/.github/workflows/autogen/src/index.mjs b/.github/workflows/autogen/src/index.mjs index d1d24f42..41ed3f93 100644 --- a/.github/workflows/autogen/src/index.mjs +++ b/.github/workflows/autogen/src/index.mjs @@ -22,8 +22,6 @@ import { fileURLToPath } from 'url' import * as changeCase from 'change-case' export const AUTOGENERATE_E2E_TEST_JOBS = '# {AUTOGENERATE-E2E-TEST-JOBS}' -export const AUTOGENERATE_E2E_TEST_JOBS_2 = '# {AUTOGENERATE-E2E-TEST-JOBS-2}' -export const AUTOGENERATE_NEEDS = '# {AUTOGENERATE-NEEDS}' export const AUTOGENERATE_WITH_SUBDIR = '# {AUTOGENERATE-WITH-SUBDIR}' export const AUTOGENERATE_WITH_COVERAGE_REPORT = '# {AUTOGENERATE-WITH-COVERAGE-REPORT}' export const AUTOGENERATE_JOB_OUTPUTS_SUB_DIRS = '# {AUTOGENERATE-JOB-OUTPUTS-SUB-DIRS}' @@ -144,19 +142,17 @@ function buildWorkflows (outputDir, templateDir, config) { const trimmedLine = line.trim() switch (trimmedLine) { - case AUTOGENERATE_E2E_TEST_JOBS: - case AUTOGENERATE_E2E_TEST_JOBS_2: case AUTOGENERATE_WORKFLOW_OUTPUTS_SUB_DIRS: case AUTOGENERATE_WORKFLOW_OUTPUTS_COVERAGE_REPORTS: case AUTOGENERATE_INPUTS_SUB_DIRS: case AUTOGENERATE_INPUTS_COVERAGE_REPORTS: autogenerateYaml(line, config, outputLines, trimmedLine) break - case AUTOGENERATE_NEEDS: case AUTOGENERATE_WITH_SUBDIR: case AUTOGENERATE_WITH_COVERAGE_REPORT: case AUTOGENERATE_JOB_OUTPUTS_SUB_DIRS: case AUTOGENERATE_JOB_OUTPUTS_COVERAGE_REPORTS: + case AUTOGENERATE_E2E_TEST_JOBS: autogenerateLine(line, config, outputLines, trimmedLine) break case AUTOGENERATE_DOWNLOAD_JOBS: @@ -188,10 +184,6 @@ export function autogenerateYaml (line, config, outputLines, templateKey) { const outputYaml = {} switch (templateKey) { - case AUTOGENERATE_E2E_TEST_JOBS: - case AUTOGENERATE_E2E_TEST_JOBS_2: - generateTestJobs(test, templateKey, outputYaml) - break default: generateOutputs(test, templateKey, outputYaml) suppressEmptyLines = true @@ -259,40 +251,6 @@ export function generateOutputs (test, templateKey, outputYaml) { outputYaml[outputKey] = outputValue } -/** - * Generates the test jobs for the provided templateKey - * @param {Test} test - * @param {string} templateKey - * @param {Object} outputYaml - */ -export function generateTestJobs (test, templateKey, outputYaml) { - const formalNounName = test.name - const kebabCase = changeCase.kebabCase(formalNounName) - const testJobKey = `e2e-${kebabCase}-tests` - const testJobValue = {} - testJobValue.name = 'E2E Tests' - - if (templateKey === AUTOGENERATE_E2E_TEST_JOBS) { - testJobValue.if = '${{ github.event_name == \'push\' || github.event.inputs.enable-e2e-tests == \'true\' }}' - } else { - testJobValue.if = '${{ !cancelled() && always() }}' - } - - testJobValue.uses = './.github/workflows/zxc-e2e-test.yaml' - testJobValue.needs = ['env-vars', 'code-style'] - testJobValue.with = { - 'custom-job-label': formalNounName, - 'npm-test-script': 'test-${{ needs.env-vars.outputs.e2e-' + - kebabCase + '-test-subdir }}', - 'coverage-subdirectory': '${{ needs.env-vars.outputs.e2e-' + - kebabCase + '-test-subdir }}', - 'coverage-report-name': '${{ needs.env-vars.outputs.e2e-' + - kebabCase + '-coverage-report }}' - } - - outputYaml[testJobKey] = testJobValue -} - /** * Generates the output line for the provided templateKey * @param {string} line @@ -320,10 +278,6 @@ export function autogenerateLine (line, config, outputLines, templateKey) { namePart = `e2e-${kebabCase}` outputLines.push(spacePrefix + namePart + '-coverage-report: ${{ needs.env-vars.outputs.' + namePart + '-coverage-report }}') break - case AUTOGENERATE_NEEDS: - namePart = `e2e-${kebabCase}-tests` - outputLines.push(`${spacePrefix}- ${namePart}`) - break case AUTOGENERATE_JOB_OUTPUTS_SUB_DIRS: namePart = `e2e_${snakeCase}_test_subdir` namePart2 = `e2e-${kebabCase}` @@ -341,6 +295,13 @@ export function autogenerateLine (line, config, outputLines, templateKey) { outputLines.push(spacePrefix + ' name: ${{ inputs.e2e-' + kebabCase + '-coverage-report }}') outputLines.push(spacePrefix + ' path: \'coverage/${{ inputs.e2e-' + kebabCase + '-test-subdir }}\'') outputLines.push('') + break + case AUTOGENERATE_E2E_TEST_JOBS: + outputLines.push(spacePrefix + '- { name: "' + formalNounName + + '", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-' + kebabCase + + '-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-' + kebabCase + + '-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-' + kebabCase + + '-coverage-report }}" }') } }) } diff --git a/.github/workflows/flow-build-application.yaml b/.github/workflows/flow-build-application.yaml index 9efd9131..21e4c0ab 100644 --- a/.github/workflows/flow-build-application.yaml +++ b/.github/workflows/flow-build-application.yaml @@ -64,174 +64,35 @@ jobs: with: custom-job-label: Standard - e2e-integration-tests: + e2e-tests: name: E2E Tests if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} uses: ./.github/workflows/zxc-e2e-test.yaml needs: - env-vars - code-style - with: - custom-job-label: Integration - npm-test-script: test-${{ needs.env-vars.outputs.e2e-integration-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-integration-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-integration-coverage-report }} - - e2e-standard-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Standard - npm-test-script: test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-standard-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }} - - e2e-mirror-node-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Mirror Node - npm-test-script: test-${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }} - - e2e-node-pem-stop-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node PEM Stop - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }} - - e2e-node-pem-kill-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node PEM Kill - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }} - - e2e-node-local-build-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Local Build - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-local-build-coverage-report }} - - e2e-node-add-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Add - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-add-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-add-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-add-coverage-report }} - - e2e-node-add-separate-commands-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Add - Separate commands - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-add-separate-commands-coverage-report }} - - e2e-node-update-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Update - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-update-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-update-coverage-report }} - - e2e-node-delete-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Delete - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }} - - e2e-node-delete-separate-commands-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Delete - Separate commands - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }} - - e2e-node-upgrade-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Upgrade - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }} - - e2e-relay-tests: - name: E2E Tests - if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Relay - npm-test-script: test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }} + strategy: + matrix: + e2e-test-type: + - { name: "Integration", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-integration-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-integration-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-integration-coverage-report }}" } + - { name: "Standard", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-standard-coverage-report }}" } + - { name: "Mirror Node", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }}" } + - { name: "Node PEM Stop", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }}" } + - { name: "Node PEM Kill", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }}" } + - { name: "Node Local Build", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-local-build-coverage-report }}" } + - { name: "Node Add", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-add-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-add-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-add-coverage-report }}" } + - { name: "Node Add - Separate commands", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-add-separate-commands-coverage-report }}" } + - { name: "Node Update", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}" } + - { name: "Node Delete", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }}" } + - { name: "Node Delete - Separate commands", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}" } + - { name: "Node Upgrade", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}" } + - { name: "Relay", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-relay-coverage-report }}" } + max-parallel: 5 + with: + custom-job-label: ${{ matrix.e2e-test-type.name }} + npm-test-script: ${{ matrix.e2e-test-type.npm-test-script }} + coverage-subdirectory: ${{ matrix.e2e-test-type.coverage-subdirectory }} + coverage-report-name: ${{ matrix.e2e-test-type.coverage-report-name }} analyze: name: Analyze @@ -239,19 +100,7 @@ jobs: needs: - env-vars - unit-tests - - e2e-integration-tests - - e2e-standard-tests - - e2e-mirror-node-tests - - e2e-node-pem-stop-tests - - e2e-node-pem-kill-tests - - e2e-node-local-build-tests - - e2e-node-add-tests - - e2e-node-add-separate-commands-tests - - e2e-node-update-tests - - e2e-node-delete-tests - - e2e-node-delete-separate-commands-tests - - e2e-node-upgrade-tests - - e2e-relay-tests + - e2e-tests if: ${{ (github.event_name == 'push' || github.event.inputs.enable-unit-tests == 'true' || github.event.inputs.enable-e2e-tests == 'true') && !failure() && !cancelled() }} with: custom-job-label: Source Code diff --git a/.github/workflows/flow-pull-request-checks.yaml b/.github/workflows/flow-pull-request-checks.yaml index 18fa322d..e5e5db35 100644 --- a/.github/workflows/flow-pull-request-checks.yaml +++ b/.github/workflows/flow-pull-request-checks.yaml @@ -62,174 +62,35 @@ jobs: GH_ACCESS_GPG_KEY: ${{ secrets.GH_ACCESS_GPG_KEY }} GH_ACCESS_PASSPHRASE: ${{ secrets.GH_ACCESS_PASSPHRASE }} - e2e-integration-tests: + e2e-tests: name: E2E Tests if: ${{ !cancelled() && always() }} uses: ./.github/workflows/zxc-e2e-test.yaml needs: - env-vars - code-style - with: - custom-job-label: Integration - npm-test-script: test-${{ needs.env-vars.outputs.e2e-integration-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-integration-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-integration-coverage-report }} - - e2e-standard-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Standard - npm-test-script: test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-standard-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }} - - e2e-mirror-node-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Mirror Node - npm-test-script: test-${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }} - - e2e-node-pem-stop-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node PEM Stop - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }} - - e2e-node-pem-kill-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node PEM Kill - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }} - - e2e-node-local-build-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Local Build - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-local-build-coverage-report }} - - e2e-node-add-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Add - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-add-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-add-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-add-coverage-report }} - - e2e-node-add-separate-commands-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Add - Separate commands - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-add-separate-commands-coverage-report }} - - e2e-node-update-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Update - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-update-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-update-coverage-report }} - - e2e-node-delete-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Delete - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }} - - e2e-node-delete-separate-commands-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Delete - Separate commands - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }} - - e2e-node-upgrade-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Node Upgrade - npm-test-script: test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }} - - e2e-relay-tests: - name: E2E Tests - if: ${{ !cancelled() && always() }} - uses: ./.github/workflows/zxc-e2e-test.yaml - needs: - - env-vars - - code-style - with: - custom-job-label: Relay - npm-test-script: test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }} - coverage-subdirectory: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }} - coverage-report-name: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }} + strategy: + matrix: + e2e-test-type: + - { name: "Integration", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-integration-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-integration-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-integration-coverage-report }}" } + - { name: "Standard", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-standard-coverage-report }}" } + - { name: "Mirror Node", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-mirror-node-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-mirror-node-coverage-report }}" } + - { name: "Node PEM Stop", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }}" } + - { name: "Node PEM Kill", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }}" } + - { name: "Node Local Build", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-local-build-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-local-build-coverage-report }}" } + - { name: "Node Add", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-add-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-add-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-add-coverage-report }}" } + - { name: "Node Add - Separate commands", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-add-separate-commands-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-add-separate-commands-coverage-report }}" } + - { name: "Node Update", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}" } + - { name: "Node Delete", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-delete-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-delete-coverage-report }}" } + - { name: "Node Delete - Separate commands", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-delete-separate-commands-coverage-report }}" } + - { name: "Node Upgrade", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}" } + - { name: "Relay", npm-test-script: "test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-relay-coverage-report }}" } + max-parallel: 5 + with: + custom-job-label: ${{ matrix.e2e-test-type.name }} + npm-test-script: ${{ matrix.e2e-test-type.npm-test-script }} + coverage-subdirectory: ${{ matrix.e2e-test-type.coverage-subdirectory }} + coverage-report-name: ${{ matrix.e2e-test-type.coverage-report-name }} codecov: name: CodeCov @@ -237,19 +98,7 @@ jobs: needs: - env-vars - unit-tests - - e2e-integration-tests - - e2e-standard-tests - - e2e-mirror-node-tests - - e2e-node-pem-stop-tests - - e2e-node-pem-kill-tests - - e2e-node-local-build-tests - - e2e-node-add-tests - - e2e-node-add-separate-commands-tests - - e2e-node-update-tests - - e2e-node-delete-tests - - e2e-node-delete-separate-commands-tests - - e2e-node-upgrade-tests - - e2e-relay-tests + - e2e-tests if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} with: custom-job-label: Standard @@ -290,19 +139,7 @@ jobs: needs: - env-vars - unit-tests - - e2e-integration-tests - - e2e-standard-tests - - e2e-mirror-node-tests - - e2e-node-pem-stop-tests - - e2e-node-pem-kill-tests - - e2e-node-local-build-tests - - e2e-node-add-tests - - e2e-node-add-separate-commands-tests - - e2e-node-update-tests - - e2e-node-delete-tests - - e2e-node-delete-separate-commands-tests - - e2e-node-upgrade-tests - - e2e-relay-tests + - e2e-tests if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} with: custom-job-label: Coverage diff --git a/.github/workflows/templates/template.flow-build-application.yaml b/.github/workflows/templates/template.flow-build-application.yaml index 51c76dee..fba8a72e 100644 --- a/.github/workflows/templates/template.flow-build-application.yaml +++ b/.github/workflows/templates/template.flow-build-application.yaml @@ -64,7 +64,23 @@ jobs: with: custom-job-label: Standard - # {AUTOGENERATE-E2E-TEST-JOBS} + e2e-tests: + name: E2E Tests + if: ${{ github.event_name == 'push' || github.event.inputs.enable-e2e-tests == 'true' }} + uses: ./.github/workflows/zxc-e2e-test.yaml + needs: + - env-vars + - code-style + strategy: + matrix: + e2e-test-type: + # {AUTOGENERATE-E2E-TEST-JOBS} + max-parallel: 5 + with: + custom-job-label: ${{ matrix.e2e-test-type.name }} + npm-test-script: ${{ matrix.e2e-test-type.npm-test-script }} + coverage-subdirectory: ${{ matrix.e2e-test-type.coverage-subdirectory }} + coverage-report-name: ${{ matrix.e2e-test-type.coverage-report-name }} analyze: name: Analyze @@ -72,7 +88,7 @@ jobs: needs: - env-vars - unit-tests - # {AUTOGENERATE-NEEDS} + - e2e-tests if: ${{ (github.event_name == 'push' || github.event.inputs.enable-unit-tests == 'true' || github.event.inputs.enable-e2e-tests == 'true') && !failure() && !cancelled() }} with: custom-job-label: Source Code diff --git a/.github/workflows/templates/template.flow-pull-request-checks.yaml b/.github/workflows/templates/template.flow-pull-request-checks.yaml index ae66c1fb..c3288679 100644 --- a/.github/workflows/templates/template.flow-pull-request-checks.yaml +++ b/.github/workflows/templates/template.flow-pull-request-checks.yaml @@ -62,7 +62,23 @@ jobs: GH_ACCESS_GPG_KEY: ${{ secrets.GH_ACCESS_GPG_KEY }} GH_ACCESS_PASSPHRASE: ${{ secrets.GH_ACCESS_PASSPHRASE }} - # {AUTOGENERATE-E2E-TEST-JOBS-2} + e2e-tests: + name: E2E Tests + if: ${{ !cancelled() && always() }} + uses: ./.github/workflows/zxc-e2e-test.yaml + needs: + - env-vars + - code-style + strategy: + matrix: + e2e-test-type: + # {AUTOGENERATE-E2E-TEST-JOBS} + max-parallel: 5 + with: + custom-job-label: ${{ matrix.e2e-test-type.name }} + npm-test-script: ${{ matrix.e2e-test-type.npm-test-script }} + coverage-subdirectory: ${{ matrix.e2e-test-type.coverage-subdirectory }} + coverage-report-name: ${{ matrix.e2e-test-type.coverage-report-name }} codecov: name: CodeCov @@ -70,7 +86,7 @@ jobs: needs: - env-vars - unit-tests - # {AUTOGENERATE-NEEDS} + - e2e-tests if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} with: custom-job-label: Standard @@ -87,7 +103,7 @@ jobs: needs: - env-vars - unit-tests - # {AUTOGENERATE-NEEDS} + - e2e-tests if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} with: custom-job-label: Coverage