Don't use separate jobs, just use the matrix

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
Pedro Algarvio 2023-11-09 17:55:06 +00:00 committed by Pedro Algarvio
parent 3c76698d54
commit 10e9e6c98b
11 changed files with 126 additions and 273 deletions

View file

@ -1619,6 +1619,7 @@ jobs:
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-4-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
@ -1641,6 +1642,7 @@ jobs:
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-pkg-tests:
name: Photon OS 5 Package Test
@ -1663,9 +1665,10 @@ jobs:
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
name: Photon OS 5 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
@ -1685,28 +1688,6 @@ jobs:
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
photonos-4-pkg-tests-fips:
name: Photon OS 4 Package Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- build-rpm-pkgs-onedir
- photonos-4-ci-deps
uses: ./.github/workflows/test-packages-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: rpm
nox-version: 2022.8.7
python-version: "3.10"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
ubuntu-2004-pkg-tests:
@ -2500,6 +2481,7 @@ jobs:
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
workflow-slug: ci
default-timeout: 180
fips: true
photonos-4-arm64:
name: Photon OS 4 Arm64 Test
@ -2522,6 +2504,7 @@ jobs:
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
workflow-slug: ci
default-timeout: 180
fips: true
photonos-5:
name: Photon OS 5 Test
@ -2544,6 +2527,7 @@ jobs:
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
workflow-slug: ci
default-timeout: 180
fips: true
photonos-5-arm64:
name: Photon OS 5 Arm64 Test
@ -2566,6 +2550,7 @@ jobs:
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
workflow-slug: ci
default-timeout: 180
fips: true
ubuntu-2004:
name: Ubuntu 20.04 Test
@ -2655,29 +2640,6 @@ jobs:
workflow-slug: ci
default-timeout: 180
photonos-4-fips:
name: Photon OS 4 Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- photonos-4-ci-deps
uses: ./.github/workflows/test-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
nox-version: 2022.8.7
python-version: "3.10"
testrun: ${{ needs.prepare-workflow.outputs.testrun }}
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
skip-junit-reports: ${{ github.event_name == 'pull_request' }}
workflow-slug: ci
default-timeout: 180
fips: true
combine-all-code-coverage:
name: Combine Code Coverage
if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }}
@ -2755,7 +2717,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
steps:
- uses: actions/checkout@v4
@ -2952,7 +2913,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
- amazonlinux-2-pkg-tests
- amazonlinux-2-arm64-pkg-tests
- amazonlinux-2023-pkg-tests
@ -2971,7 +2931,6 @@ jobs:
- photonos-4-arm64-pkg-tests
- photonos-5-pkg-tests
- photonos-5-arm64-pkg-tests
- photonos-4-pkg-tests-fips
- ubuntu-2004-pkg-tests
- ubuntu-2004-arm64-pkg-tests
- ubuntu-2204-pkg-tests

View file

@ -1680,6 +1680,7 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-4-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
@ -1702,6 +1703,7 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-pkg-tests:
name: Photon OS 5 Package Test
@ -1724,9 +1726,10 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
name: Photon OS 5 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
@ -1746,28 +1749,6 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
photonos-4-pkg-tests-fips:
name: Photon OS 4 Package Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- build-rpm-pkgs-onedir
- photonos-4-ci-deps
uses: ./.github/workflows/test-packages-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: rpm
nox-version: 2022.8.7
python-version: "3.10"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
ubuntu-2004-pkg-tests:
@ -2561,6 +2542,7 @@ jobs:
skip-junit-reports: false
workflow-slug: nightly
default-timeout: 360
fips: true
photonos-4-arm64:
name: Photon OS 4 Arm64 Test
@ -2583,6 +2565,7 @@ jobs:
skip-junit-reports: false
workflow-slug: nightly
default-timeout: 360
fips: true
photonos-5:
name: Photon OS 5 Test
@ -2605,6 +2588,7 @@ jobs:
skip-junit-reports: false
workflow-slug: nightly
default-timeout: 360
fips: true
photonos-5-arm64:
name: Photon OS 5 Arm64 Test
@ -2627,6 +2611,7 @@ jobs:
skip-junit-reports: false
workflow-slug: nightly
default-timeout: 360
fips: true
ubuntu-2004:
name: Ubuntu 20.04 Test
@ -2716,29 +2701,6 @@ jobs:
workflow-slug: nightly
default-timeout: 360
photonos-4-fips:
name: Photon OS 4 Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- photonos-4-ci-deps
uses: ./.github/workflows/test-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
nox-version: 2022.8.7
python-version: "3.10"
testrun: ${{ needs.prepare-workflow.outputs.testrun }}
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: false
skip-junit-reports: false
workflow-slug: nightly
default-timeout: 360
fips: true
combine-all-code-coverage:
name: Combine Code Coverage
if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }}
@ -2816,7 +2778,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
steps:
- uses: actions/checkout@v4
@ -3712,7 +3673,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
steps:
- uses: actions/checkout@v4
@ -3792,7 +3752,6 @@ jobs:
- photonos-4-arm64-pkg-tests
- photonos-5-pkg-tests
- photonos-5-arm64-pkg-tests
- photonos-4-pkg-tests-fips
- ubuntu-2004-pkg-tests
- ubuntu-2004-arm64-pkg-tests
- ubuntu-2204-pkg-tests

View file

@ -1653,6 +1653,7 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-4-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
@ -1675,6 +1676,7 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-pkg-tests:
name: Photon OS 5 Package Test
@ -1697,9 +1699,10 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
name: Photon OS 5 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
@ -1719,28 +1722,6 @@ jobs:
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
photonos-4-pkg-tests-fips:
name: Photon OS 4 Package Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- build-rpm-pkgs-onedir
- photonos-4-ci-deps
uses: ./.github/workflows/test-packages-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: rpm
nox-version: 2022.8.7
python-version: "3.10"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: false
skip-junit-reports: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
ubuntu-2004-pkg-tests:
@ -2534,6 +2515,7 @@ jobs:
skip-junit-reports: false
workflow-slug: scheduled
default-timeout: 360
fips: true
photonos-4-arm64:
name: Photon OS 4 Arm64 Test
@ -2556,6 +2538,7 @@ jobs:
skip-junit-reports: false
workflow-slug: scheduled
default-timeout: 360
fips: true
photonos-5:
name: Photon OS 5 Test
@ -2578,6 +2561,7 @@ jobs:
skip-junit-reports: false
workflow-slug: scheduled
default-timeout: 360
fips: true
photonos-5-arm64:
name: Photon OS 5 Arm64 Test
@ -2600,6 +2584,7 @@ jobs:
skip-junit-reports: false
workflow-slug: scheduled
default-timeout: 360
fips: true
ubuntu-2004:
name: Ubuntu 20.04 Test
@ -2689,29 +2674,6 @@ jobs:
workflow-slug: scheduled
default-timeout: 360
photonos-4-fips:
name: Photon OS 4 Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- photonos-4-ci-deps
uses: ./.github/workflows/test-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
nox-version: 2022.8.7
python-version: "3.10"
testrun: ${{ needs.prepare-workflow.outputs.testrun }}
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: false
skip-junit-reports: false
workflow-slug: scheduled
default-timeout: 360
fips: true
combine-all-code-coverage:
name: Combine Code Coverage
if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }}
@ -2789,7 +2751,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
steps:
- uses: actions/checkout@v4
@ -2988,7 +2949,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
- amazonlinux-2-pkg-tests
- amazonlinux-2-arm64-pkg-tests
- amazonlinux-2023-pkg-tests
@ -3007,7 +2967,6 @@ jobs:
- photonos-4-arm64-pkg-tests
- photonos-5-pkg-tests
- photonos-5-arm64-pkg-tests
- photonos-4-pkg-tests-fips
- ubuntu-2004-pkg-tests
- ubuntu-2004-arm64-pkg-tests
- ubuntu-2204-pkg-tests

View file

@ -1675,6 +1675,7 @@ jobs:
skip-code-coverage: true
skip-junit-reports: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-4-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
@ -1697,6 +1698,7 @@ jobs:
skip-code-coverage: true
skip-junit-reports: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-pkg-tests:
name: Photon OS 5 Package Test
@ -1719,9 +1721,10 @@ jobs:
skip-code-coverage: true
skip-junit-reports: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
photonos-5-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test
name: Photon OS 5 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
@ -1741,28 +1744,6 @@ jobs:
skip-code-coverage: true
skip-junit-reports: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
photonos-4-pkg-tests-fips:
name: Photon OS 4 Package Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- build-rpm-pkgs-onedir
- photonos-4-ci-deps
uses: ./.github/workflows/test-packages-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: rpm
nox-version: 2022.8.7
python-version: "3.10"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: true
skip-junit-reports: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
fips: true
ubuntu-2004-pkg-tests:
@ -2556,6 +2537,7 @@ jobs:
skip-junit-reports: true
workflow-slug: staging
default-timeout: 180
fips: true
photonos-4-arm64:
name: Photon OS 4 Arm64 Test
@ -2578,6 +2560,7 @@ jobs:
skip-junit-reports: true
workflow-slug: staging
default-timeout: 180
fips: true
photonos-5:
name: Photon OS 5 Test
@ -2600,6 +2583,7 @@ jobs:
skip-junit-reports: true
workflow-slug: staging
default-timeout: 180
fips: true
photonos-5-arm64:
name: Photon OS 5 Arm64 Test
@ -2622,6 +2606,7 @@ jobs:
skip-junit-reports: true
workflow-slug: staging
default-timeout: 180
fips: true
ubuntu-2004:
name: Ubuntu 20.04 Test
@ -2711,29 +2696,6 @@ jobs:
workflow-slug: staging
default-timeout: 180
photonos-4-fips:
name: Photon OS 4 Test(FIPS)
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
- photonos-4-ci-deps
uses: ./.github/workflows/test-action.yml
with:
distro-slug: photonos-4
nox-session: ci-test-onedir
platform: linux
arch: x86_64
nox-version: 2022.8.7
python-version: "3.10"
testrun: ${{ needs.prepare-workflow.outputs.testrun }}
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13
skip-code-coverage: true
skip-junit-reports: true
workflow-slug: staging
default-timeout: 180
fips: true
build-src-repo:
name: Build Repository
environment: staging
@ -3690,7 +3652,6 @@ jobs:
- ubuntu-2004-arm64
- ubuntu-2204
- ubuntu-2204-arm64
- photonos-4-fips
- amazonlinux-2-pkg-tests
- amazonlinux-2-arm64-pkg-tests
- amazonlinux-2023-pkg-tests
@ -3709,7 +3670,6 @@ jobs:
- photonos-4-arm64-pkg-tests
- photonos-5-pkg-tests
- photonos-5-arm64-pkg-tests
- photonos-4-pkg-tests-fips
- ubuntu-2004-pkg-tests
- ubuntu-2004-arm64-pkg-tests
- ubuntu-2204-pkg-tests

View file

@ -1,13 +1,9 @@
<%- for slug, display_name, arch, pkg_type, fips in test_salt_pkg_listing["linux"] %>
<%- if fips == "fips" %>
<%- set job_name = "{}-pkg-tests-fips".format(slug.replace(".", "")) %>
<%- else %>
<%- set job_name = "{}-pkg-tests".format(slug.replace(".", "")) %>
<%- endif %>
<{ job_name }>:
<%- do test_salt_pkg_needs.append(job_name) %>
name: <{ display_name }> Package Test<% if fips == "fips" %>(FIPS)<% endif %>
name: <{ display_name }> Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow

View file

@ -59,17 +59,11 @@
<%- endfor %>
<%- for slug, display_name, arch, fips in test_salt_listing["linux"] %>
<%- if fips %>
<%- set job_name = slug + "-fips" %>
<%- else %>
<%- set job_name = slug %>
<%- endif %>
<{ job_name.replace(".", "") }>:
<%- do test_salt_needs.append(job_name.replace(".", "")) %>
name: <{ display_name }> Test<% if fips %>(FIPS)<% endif %>
<{ slug.replace(".", "") }>:
<%- do test_salt_needs.append(slug.replace(".", "")) %>
name: <{ display_name }> Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs:
- prepare-workflow
@ -89,7 +83,7 @@
skip-junit-reports: <{ skip_junit_reports_check }>
workflow-slug: <{ workflow_slug }>
default-timeout: <{ timeout_value }>
<%- if fips %>
<%- if fips == "fips" %>
fips: true
<%- endif %>

View file

@ -105,7 +105,7 @@ jobs:
- name: Generate Test Matrix
id: generate-matrix
run: |
tools ci matrix --workflow=${{ inputs.workflow-slug }} ${{ fromJSON(inputs.testrun)['type'] == 'full' && '--full ' || '' }}${{ inputs.distro-slug }}
tools ci matrix --workflow=${{ inputs.workflow-slug }} ${{ fromJSON(inputs.testrun)['type'] == 'full' && '--full ' || '' }}${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }}
test:
name: Test
@ -212,7 +212,7 @@ jobs:
if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] == false }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --suppress-no-test-exit-code \
--from-filenames=testrun-changed-files.txt
@ -221,7 +221,7 @@ jobs:
if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] == false }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests --suppress-no-test-exit-code \
--from-filenames=testrun-changed-files.txt
@ -230,7 +230,7 @@ jobs:
if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] == false }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests --suppress-no-test-exit-code \
--from-filenames=testrun-changed-files.txt
@ -240,14 +240,14 @@ jobs:
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ (inputs.skip-code-coverage && matrix.tests-chunk != 'unit') && '--skip-code-coverage' || '' }} \
${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}
${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}
- name: Run Slow Tests
id: run-slow-tests
if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests
- name: Run Core Tests
@ -255,7 +255,7 @@ jobs:
if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests
- name: Run Flaky Tests
@ -263,7 +263,7 @@ jobs:
if: ${{ fromJSON(inputs.testrun)['selected_tests']['flaky'] }}
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ matrix.tests-chunk }} -- --no-fast-tests --flaky-jail
- name: Run Full Tests
@ -272,7 +272,7 @@ jobs:
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ (inputs.skip-code-coverage && matrix.tests-chunk != 'unit') && '--skip-code-coverage' || '' }} \
-E TEST_GROUP ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }} -- --slow-tests --core-tests \
-E TEST_GROUP ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }} -- --slow-tests --core-tests \
--test-group-count=${{ matrix.test-group-count || 1 }} --test-group=${{ matrix.test-group || 1 }}
- name: Combine Coverage Reports

View file

@ -172,7 +172,7 @@ jobs:
GITHUB_ACTIONS_PIPELINE: "1"
SKIP_INITIAL_GH_ACTIONS_FAILURES: "1"
run: |
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.test-chunk }} \
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} \
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
- name: Run Package Tests
@ -186,7 +186,7 @@ jobs:
SKIP_INITIAL_GH_ACTIONS_FAILURES: "1"
COVERAGE_CONTEXT: ${{ inputs.distro-slug }}
run: |
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.test-chunk }} \
sudo -E nox --force-color -e ${{ inputs.nox-session }}-pkgs -- ${{ matrix.tests-chunk }} \
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
- name: Fix file ownership
@ -206,7 +206,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v3
with:
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.test-chunk }}
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
path: |
artifacts
!artifacts/salt/*
@ -232,7 +232,7 @@ jobs:
id: download-test-run-artifacts
uses: actions/download-artifact@v3
with:
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.test-chunk }}
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
path: artifacts
- name: Show Test Run Artifacts
@ -254,6 +254,6 @@ jobs:
# always run even if the previous steps fails
if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success'
with:
check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.test-chunk }})
check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }})
report_paths: 'artifacts/xml-unittests-output/*.xml'
annotate_only: true

View file

@ -99,7 +99,8 @@ jobs:
- name: Generate Package Test Matrix
id: generate-pkg-matrix
run: |
tools ci pkg-matrix ${{ inputs.distro-slug }} ${{ inputs.pkg-type }} --testing-releases ${{ join(fromJSON(inputs.testing-releases), ' ') }}
tools ci pkg-matrix ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \
${{ inputs.pkg-type }} --testing-releases ${{ join(fromJSON(inputs.testing-releases), ' ') }}
test:
@ -186,7 +187,7 @@ jobs:
tools --timestamps vm decompress-dependencies ${{ inputs.distro-slug }}
- name: Downgrade importlib-metadata
if: ${{ contains(fromJSON('["amazonlinux-2", "centos-7", "debian-10"]'), inputs.distro-slug) && contains(fromJSON('["upgrade-classic", "downgrade-classic"]'), matrix.test-chunk) }}
if: ${{ contains(fromJSON('["amazonlinux-2", "centos-7", "debian-10"]'), inputs.distro-slug) && contains(fromJSON('["upgrade-classic", "downgrade-classic"]'), matrix.tests-chunk) }}
run: |
# This step can go away once we stop testing classic packages upgrade/downgrades to/from 3005.x
tools --timestamps vm ssh ${{ inputs.distro-slug }} -- "sudo python3 -m pip install -U 'importlib-metadata<=4.13.0' 'virtualenv<=20.21.1'"
@ -194,12 +195,13 @@ jobs:
- name: Show System Info & Test Plan
run: |
tools --timestamps --timeout-secs=1800 vm testplan --skip-requirements-install \
--nox-session=${{ inputs.nox-session }}-pkgs ${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} \
--nox-session=${{ inputs.nox-session }}-pkgs ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
- name: Run Package Tests
run: |
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} \
tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install ${{ matrix.fips && '--fips ' || '' }}\
--nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \
${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}}
- name: Download Test Run Artifacts
@ -221,7 +223,7 @@ jobs:
if: always() && steps.download-artifacts-from-vm.outcome == 'success'
uses: actions/upload-artifact@v3
with:
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.test-chunk }}
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
path: |
artifacts
!artifacts/salt/*
@ -250,7 +252,7 @@ jobs:
id: download-test-run-artifacts
uses: actions/download-artifact@v3
with:
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.test-chunk }}
name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }}
path: artifacts
- name: Show Test Run Artifacts
@ -263,6 +265,6 @@ jobs:
# always run even if the previous steps fails
if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success'
with:
check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.test-chunk }})
check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }})
report_paths: 'artifacts/xml-unittests-output/*.xml'
annotate_only: true

View file

@ -625,9 +625,18 @@ def define_testrun(ctx: Context, event_name: str, changed_files: pathlib.Path):
"workflow": {
"help": "Which workflow is running",
},
"fips": {
"help": "Include FIPS entries in the matrix",
},
},
)
def matrix(ctx: Context, distro_slug: str, full: bool = False, workflow: str = "ci"):
def matrix(
ctx: Context,
distro_slug: str,
full: bool = False,
workflow: str = "ci",
fips: bool = False,
):
"""
Generate the test matrix.
"""
@ -674,8 +683,22 @@ def matrix(ctx: Context, distro_slug: str, full: bool = False, workflow: str = "
"test-group-count": splits,
}
)
if (
fips is True
and transport != "tcp"
and distro_slug.startswith(("photonos-4", "photonos-5"))
):
# Repeat the last one, but with fips
_matrix.append({"fips": "fips", **_matrix[-1]})
else:
_matrix.append({"transport": transport, "tests-chunk": chunk})
if (
fips is True
and transport != "tcp"
and distro_slug.startswith(("photonos-4", "photonos-5"))
):
# Repeat the last one, but with fips
_matrix.append({"fips": "fips", **_matrix[-1]})
ctx.info("Generated matrix:")
ctx.print(_matrix, soft_wrap=True)
@ -701,6 +724,9 @@ def matrix(ctx: Context, distro_slug: str, full: bool = False, workflow: str = "
"nargs": "+",
"required": True,
},
"fips": {
"help": "Include FIPS entries in the matrix",
},
},
)
def pkg_matrix(
@ -708,6 +734,7 @@ def pkg_matrix(
distro_slug: str,
pkg_type: str,
testing_releases: list[tools.utils.Version] = None,
fips: bool = False,
):
"""
Generate the test matrix.
@ -836,10 +863,14 @@ def pkg_matrix(
continue
_matrix.append(
{
"test-chunk": session,
"tests-chunk": session,
"version": version,
}
)
if fips is True and distro_slug.startswith(("photonos-4", "photonos-5")):
# Repeat the last one, but with fips
_matrix.append({"fips": "fips", **_matrix[-1]})
ctx.info("Generated matrix:")
ctx.print(_matrix, soft_wrap=True)

View file

@ -86,34 +86,34 @@ def generate_workflows(ctx: Context):
}
test_salt_listing = {
"linux": [
("almalinux-8", "Alma Linux 8", "x86_64"),
("almalinux-9", "Alma Linux 9", "x86_64"),
("amazonlinux-2", "Amazon Linux 2", "x86_64"),
("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64"),
("amazonlinux-2023", "Amazon Linux 2023", "x86_64"),
("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "aarch64"),
("archlinux-lts", "Arch Linux LTS", "x86_64"),
("centos-7", "CentOS 7", "x86_64"),
("centosstream-8", "CentOS Stream 8", "x86_64"),
("centosstream-9", "CentOS Stream 9", "x86_64"),
("debian-10", "Debian 10", "x86_64"),
("debian-11", "Debian 11", "x86_64"),
("debian-11-arm64", "Debian 11 Arm64", "aarch64"),
("debian-12", "Debian 12", "x86_64"),
("debian-12-arm64", "Debian 12 Arm64", "aarch64"),
("fedora-37", "Fedora 37", "x86_64"),
("fedora-38", "Fedora 38", "x86_64"),
("opensuse-15", "Opensuse 15", "x86_64"),
("photonos-3", "Photon OS 3", "x86_64"),
("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64"),
("photonos-4", "Photon OS 4", "x86_64"),
("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64"),
("photonos-5", "Photon OS 5", "x86_64"),
("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64"),
("ubuntu-20.04", "Ubuntu 20.04", "x86_64"),
("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64"),
("ubuntu-22.04", "Ubuntu 22.04", "x86_64"),
("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64"),
("almalinux-8", "Alma Linux 8", "x86_64", "no-fips"),
("almalinux-9", "Alma Linux 9", "x86_64", "no-fips"),
("amazonlinux-2", "Amazon Linux 2", "x86_64", "no-fips"),
("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64", "no-fips"),
("amazonlinux-2023", "Amazon Linux 2023", "x86_64", "no-fips"),
("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "aarch64", "no-fips"),
("archlinux-lts", "Arch Linux LTS", "x86_64", "no-fips"),
("centos-7", "CentOS 7", "x86_64", "no-fips"),
("centosstream-8", "CentOS Stream 8", "x86_64", "no-fips"),
("centosstream-9", "CentOS Stream 9", "x86_64", "no-fips"),
("debian-10", "Debian 10", "x86_64", "no-fips"),
("debian-11", "Debian 11", "x86_64", "no-fips"),
("debian-11-arm64", "Debian 11 Arm64", "aarch64", "no-fips"),
("debian-12", "Debian 12", "x86_64", "no-fips"),
("debian-12-arm64", "Debian 12 Arm64", "aarch64", "no-fips"),
("fedora-37", "Fedora 37", "x86_64", "no-fips"),
("fedora-38", "Fedora 38", "x86_64", "no-fips"),
("opensuse-15", "Opensuse 15", "x86_64", "no-fips"),
("photonos-3", "Photon OS 3", "x86_64", "no-fips"),
("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64", "no-fips"),
("photonos-4", "Photon OS 4", "x86_64", "fips"),
("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "fips"),
("photonos-5", "Photon OS 5", "x86_64", "fips"),
("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64", "fips"),
("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "no-fips"),
("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64", "no-fips"),
("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "no-fips"),
("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64", "no-fips"),
],
"macos": [
("macos-12", "macOS 12", "x86_64"),
@ -124,12 +124,6 @@ def generate_workflows(ctx: Context):
("windows-2022", "Windows 2022", "amd64"),
],
}
for idx, (slug, display_name, arch) in enumerate(test_salt_listing["linux"][:]):
fips = False
test_salt_listing["linux"][idx] = (slug, display_name, arch, fips) # type: ignore[assignment]
if slug == "photonos-4":
fips = True
test_salt_listing["linux"].append((slug, display_name, arch, fips)) # type: ignore[arg-type]
test_salt_pkg_listing = {
"linux": (
@ -159,11 +153,10 @@ def generate_workflows(ctx: Context):
("debian-12-arm64", "Debian 12 Arm64", "aarch64", "deb", "no-fips"),
("photonos-3", "Photon OS 3", "x86_64", "rpm", "no-fips"),
("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64", "rpm", "no-fips"),
("photonos-4", "Photon OS 4", "x86_64", "rpm", "no-fips"),
("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "rpm", "no-fips"),
("photonos-5", "Photon OS 5", "x86_64", "rpm", "no-fips"),
("photonos-5-arm64", "Photon OS 4 Arm64", "aarch64", "rpm", "no-fips"),
("photonos-4", "Photon OS 4", "x86_64", "rpm", "fips"),
("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "rpm", "fips"),
("photonos-5", "Photon OS 5", "x86_64", "rpm", "fips"),
("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64", "rpm", "fips"),
("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "deb", "no-fips"),
("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64", "deb", "no-fips"),
("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "deb", "no-fips"),