From 4547fcc701dedc27b02009ed9b40aee9ee94b1dd Mon Sep 17 00:00:00 2001 From: Nick Banks Date: Fri, 9 Feb 2024 13:58:58 -0500 Subject: [PATCH] Various YAML Improvements (#69) --- .github/workflows/quic.yml | 28 ++++++++++++++++++++-------- .github/workflows/update-react.yml | 8 ++++++-- .github/workflows/xdp.yml | 29 +++++++++++++++++++---------- 3 files changed, 45 insertions(+), 20 deletions(-) diff --git a/.github/workflows/quic.yml b/.github/workflows/quic.yml index a9e286c2..c3f1cd49 100644 --- a/.github/workflows/quic.yml +++ b/.github/workflows/quic.yml @@ -4,17 +4,17 @@ on: workflow_dispatch: inputs: ref: - description: 'Build Reference' + description: 'MsQuic Branch or Commit' required: false - default: '' + default: 'main' type: string filter: - description: 'Test Filter' + description: 'Custom Test Filter' required: false default: '' type: string logprofile: - description: 'Log Profile' + description: 'Logging WPR Profile' required: false default: "NULL" type: choice @@ -33,16 +33,22 @@ on: - Full.Light - Full.Verbose commit: - description: 'Commit Results' + description: 'Publish Results' required: false default: false type: boolean + pull_request: + branches: + - main + paths: + - .github/workflows/quic.yml + - .github/workflows/generate-summary.ps1 repository_dispatch: types: [run-quic] # Args: { guid, sha, ref, pr, logs, filter } concurrency: - group: quic-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || 'main' }} + group: quic-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || github.event.pull_request.number || 'main' }} cancel-in-progress: true permissions: read-all @@ -121,13 +127,19 @@ jobs: fail-fast: false matrix: vec: [ + # Azure Ubuntu 20.04 { env: "azure", plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl", io: "epoll" }, + # Azure Windows Server 2022 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "iocp" }, { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "xdp" }, + { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "rio" }, { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "wsk" }, + # Azure Windows Server 2025 (preview) { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "iocp" }, + { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "rio" }, { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "xdp" }, { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "wsk" }, + # Lab Windows Server 2022 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "iocp" }, { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "xdp" }, { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "wsk" }, @@ -156,7 +168,7 @@ jobs: path: artifacts - name: Run secnetperf shell: pwsh - timeout-minutes: 15 # TODO: Increase as necessary + timeout-minutes: 15 run: ./scripts/secnetperf.ps1 ` -LogProfile ${{ github.event.client_payload.logs || inputs.logprofile || 'NULL' }} ` -MsQuicCommit ${{ github.event.client_payload.sha || github.event.client_payload.ref || inputs.ref || 'main' }} ` @@ -173,7 +185,7 @@ jobs: with: name: test-results-${{ matrix.vec.env }}-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-${{ matrix.vec.io }}.sql path: test-results-${{ matrix.vec.env }}-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-${{ matrix.vec.io }}.sql - - name: Upload Test Results JSON # Data to populate the various pages of the dashboard. Callers of the Netperf API should specify if we want to update this or not. + - name: Upload Test Results JSON if: ${{ always() }} uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 with: diff --git a/.github/workflows/update-react.yml b/.github/workflows/update-react.yml index 4e207ed2..1bbe7eb4 100644 --- a/.github/workflows/update-react.yml +++ b/.github/workflows/update-react.yml @@ -5,11 +5,15 @@ on: push: branches: - main - paths: [ "dashboard/**", ".github/workflows/update-react.yml" ] + paths: + - .github/workflows/update-react.yml + - dashboard/**" pull_request: branches: - main - paths: [ "dashboard/**", ".github/workflows/update-react.yml" ] + paths: + - .github/workflows/update-react.yml + - dashboard/**" concurrency: # Cancel any workflow currently in progress for the same PR. diff --git a/.github/workflows/xdp.yml b/.github/workflows/xdp.yml index aba6a594..95985024 100644 --- a/.github/workflows/xdp.yml +++ b/.github/workflows/xdp.yml @@ -4,15 +4,21 @@ on: workflow_dispatch: inputs: ref: + description: 'XDP Branch or Commit' required: false - default: '' + default: 'main' type: string + pull_request: + branches: + - main + paths: + - .github/workflows/xdp.yml repository_dispatch: types: [run-xdp] # Args: { guid, sha, ref, pr } concurrency: - group: xdp-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || 'main' }} + group: xdp-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || github.event.pull_request.number || 'main' }} cancel-in-progress: true permissions: read-all @@ -95,13 +101,16 @@ jobs: strategy: fail-fast: false matrix: - os: ['2022'] - arch: [x64] + vec: [ + { env: "azure", os: "2022", arch: "x64" }, + { env: "azure", os: "2025", arch: "x64" }, + { env: "lab", os: "2022", arch: "x64" }, + ] runs-on: - self-hosted - - os-windows-${{ matrix.os }} - - ${{ matrix.arch }} - - azure + - ${{ matrix.vec.env }} + - os-windows-${{ matrix.vec.os }} + - ${{ matrix.vec.arch }} steps: - name: Checkout repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 @@ -112,14 +121,14 @@ jobs: - name: Download Artifacts uses: actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe with: - name: bin_Release_${{ matrix.os }}_${{ matrix.arch }} + name: bin_Release_2022_${{ matrix.vec.arch }} # Build always comes from 2022 for now path: artifacts/bin - name: Run Tests shell: pwsh - run: tools/two-machine-perf.ps1 -Config Release -Arch ${{ matrix.arch }} + run: tools/two-machine-perf.ps1 -Config Release -Arch ${{ matrix.vec.arch }} - name: Upload Logs if: ${{ always() }} uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 with: - name: logs_Release_${{ matrix.os }}_${{ matrix.arch }} + name: logs_${{ matrix.vec.env }}_${{ matrix.vec.os }}_${{ matrix.vec.arch }} path: artifacts/logs