name: Native IPsec prerequisite evidence on: push: branches: ['**'] paths: - 'WELA.ps1' - 'modules/AuditProfiles.psm1' - 'scripts/Configuration.ps1' - 'scripts/IpsecPrerequisites.ps1' - 'tests/IpsecPrerequisites*' - '.github/workflows/ipsec-prerequisites.yml' pull_request: workflow_dispatch: permissions: contents: read jobs: native-ipsec: strategy: fail-fast: false matrix: os: [windows-2022, windows-2025] engine: [powershell, pwsh] runs-on: ${{ matrix.os }} timeout-minutes: 20 steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Native prerequisite and public configure proof in Windows PowerShell 5.1 if: matrix.engine == 'powershell' shell: powershell run: | ./tests/IpsecPrerequisites.Tests.ps1 ./tests/IpsecPrerequisites.Windows.Tests.ps1 -AllowDisposablePolicyWrite -AllowDisposableIpsecRule - name: Native prerequisite and public configure proof in PowerShell 7 if: matrix.engine == 'pwsh' shell: pwsh run: | ./tests/IpsecPrerequisites.Tests.ps1 ./tests/IpsecPrerequisites.Windows.Tests.ps1 -AllowDisposablePolicyWrite -AllowDisposableIpsecRule - name: Retain native observations and restoration evidence if: always() uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ipsec-${{ matrix.os }}-${{ matrix.engine }} path: ${{ runner.temp }}/wela-ipsec-*/ if-no-files-found: error