PMEM tests part 1 #36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Run all tests on PMEM. | |
| # | |
| # This workflow is run on 'self-hosted' runners. | |
| name: PMEM tests part 1 | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| # run this job at 18:00 UTC every Friday | |
| - cron: '0 18 * * 5' | |
| permissions: {} | |
| jobs: | |
| # Test the default build with the basic test suite. | |
| Basic: | |
| strategy: | |
| matrix: | |
| VALGRIND: [0, 1] | |
| name: Basic ${{ matrix.VALGRIND == 0 && 'w/o Valgrind' || 'w/ Valgrind' }} | |
| uses: ./.github/workflows/pmem_test_matrix.yml | |
| with: | |
| # Exclude all Valgrind tests. All tests employing Valgrind tooling are run | |
| # in the dedicated workflows below. | |
| force_enable: '["none"]' | |
| valgrind: ${{ matrix.VALGRIND }} | |
| # Static builds are tested in this limited scope only. | |
| static: | |
| name: Static | |
| if: github.repository_owner == 'daos-stack' | |
| runs-on: [self-hosted, pmdk, rhel, icx] | |
| timeout-minutes: 1440 # 24h | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build: [static_debug, static_nondebug] | |
| steps: | |
| - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Test prepare | |
| uses: ./.github/actions/pmem_test_prepare | |
| with: | |
| valgrind: 1 | |
| - name: Test run | |
| uses: ./.github/actions/pmem_test_run | |
| with: | |
| build: ${{ matrix.build }} | |
| # Testing the fault injection scenarios requires including this capability | |
| # at compile time. | |
| fault_injection: | |
| name: Fault injection | |
| if: github.repository_owner == 'daos-stack' | |
| runs-on: [self-hosted, pmdk, rhel] | |
| steps: | |
| - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Test prepare | |
| uses: ./.github/actions/pmem_test_prepare | |
| with: | |
| fault_injection: '1' | |
| valgrind: 1 | |
| - name: Test run | |
| uses: ./.github/actions/pmem_test_run | |
| with: | |
| build: nondebug # only the production build is considered | |
| test_label: fault_injection # only dedicated scenarios | |
| # By default, PMDK is built with NDCTL in order to provide RAS features. | |
| # This build is only viable as long as DAOS builds PMDK with NDCTL_ENABLE=n | |
| # https://github.com/daos-stack/pmdk/pull/12 | |
| # It should be removed as soon as following PR is merged | |
| # https://github.com/daos-stack/pmdk/pull/35 | |
| ndctl_enable_n: | |
| name: Without ndctl | |
| if: github.repository_owner == 'daos-stack' | |
| runs-on: [self-hosted, pmdk, rhel] | |
| steps: | |
| - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
| - name: Test prepare | |
| uses: ./.github/actions/pmem_test_prepare | |
| with: | |
| ndctl_enable: n | |
| valgrind: 0 | |
| - name: Test run | |
| uses: ./.github/actions/pmem_test_run | |
| with: | |
| build: nondebug # only the production build is considered |