Repository navigation
CI Validation Infra: fixes for WSLC test prereqs, Windows log collection, LXC bridge NAT, and rate limits #939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
09afd57
56a1402
a668c36
f6a5af1
6c8c833
fbef27d
cfaa550
1ce43fd
c6aad16
a2bf450
87fc7bb
4902c42
ecff441
d6ebe7c
40055f1
2d6df7e
233dc19
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -38,7 +38,7 @@ jobs: | |
| fail-fast: false | ||
| matrix: ${{ fromJSON(needs.resolve.outputs.windows) }} | ||
| runs-on: [ self-hosted, "1ES.Pool=${{ matrix.pool }}", "JobId=mxc-e2e-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ] | ||
| timeout-minutes: 60 | ||
| timeout-minutes: 180 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 | ||
|
|
||
|
|
@@ -48,6 +48,17 @@ jobs: | |
| name: ${{ matrix.artifact }} | ||
| path: artifacts/bin | ||
|
|
||
| - name: Delayed start | ||
| if: matrix.startup_delay_seconds > 0 | ||
| shell: pwsh | ||
| run: | | ||
| # Spreads network-heavy setup across the pool's shared egress address | ||
| # instead of issuing every job's downloads at once. Configured by | ||
| # backendDelayedStart in scripts/ci/validation-test-matrix.json. | ||
| $seconds = ${{ matrix.startup_delay_seconds }} | ||
| Write-Host "Waiting $seconds second(s) before downloading prerequisites." | ||
| Start-Sleep -Seconds $seconds | ||
|
|
||
| - name: Prepare backend prerequisites | ||
| timeout-minutes: 15 | ||
| shell: pwsh | ||
|
|
@@ -59,8 +70,6 @@ jobs: | |
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| - name: Run backend tests | ||
| # A backend that hangs (rather than failing) would otherwise burn the | ||
| # full job timeout. Fail fast enough to keep the log useful. | ||
| timeout-minutes: 45 | ||
| shell: pwsh | ||
| run: | | ||
|
|
@@ -71,16 +80,25 @@ jobs: | |
| Tee-Object -FilePath (Join-Path $env:RUNNER_TEMP 'mxc-ci.log') -Append | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| - name: Upload failure logs | ||
| if: failure() || cancelled() | ||
| - name: Upload logs | ||
| if: always() | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | ||
| with: | ||
| name: logs-${{ inputs.plan }}-${{ matrix.os }}-${{ matrix.architecture }}-${{ matrix.backend }}-${{ github.run_attempt }} | ||
| # The dispatcher points TEMP here, so suite logs and scratch trees are | ||
| # collected without enumerating each one. Exclude bulk binaries that | ||
| # tooling also drops in TEMP; they dwarf the logs and aid no triage. | ||
| path: | | ||
| ${{ runner.temp }}/mxc-ci.log | ||
| ${{ runner.temp }}/mxc-wpc-tests/logs | ||
| ${{ runner.temp }}/WinProcessContainer-Tests.results.* | ||
| ${{ runner.temp }}/mxc_concurrent_oneshot | ||
| ${{ runner.temp }} | ||
|
theelliotm marked this conversation as resolved.
|
||
| !${{ runner.temp }}/**/*.vhd | ||
| !${{ runner.temp }}/**/*.vhdx | ||
| !${{ runner.temp }}/**/*.tar | ||
| !${{ runner.temp }}/**/*.msi | ||
| !${{ runner.temp }}/**/*.msix | ||
| !${{ runner.temp }}/**/*.appx | ||
| !${{ runner.temp }}/**/*.zip | ||
| !${{ runner.temp }}/**/*.exe | ||
| !${{ runner.temp }}/**/*.dll | ||
|
Comment on lines
91
to
+101
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. question: Why use the whole temp here again? perhaps I'm misunderstanding the comment above but I'm still not sure why we wouldn't want to specify a specific folder inside type or file.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Making it a catch-all for now since T1 tests create a ton of different logs in a couple folders. I'm willing to narrow the scope of it in the future. |
||
| if-no-files-found: ignore | ||
| retention-days: 7 | ||
|
|
||
|
|
@@ -92,7 +110,7 @@ jobs: | |
| fail-fast: false | ||
| matrix: ${{ fromJSON(needs.resolve.outputs.linux) }} | ||
| runs-on: [ self-hosted, "1ES.Pool=${{ matrix.pool }}", "JobId=mxc-e2e-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ] | ||
| timeout-minutes: 60 | ||
| timeout-minutes: 180 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 | ||
|
|
||
|
|
@@ -102,6 +120,18 @@ jobs: | |
| name: ${{ matrix.artifact }} | ||
| path: artifacts/bin | ||
|
|
||
| - name: Delayed start | ||
| if: matrix.startup_delay_seconds > 0 | ||
| shell: bash | ||
| run: | | ||
| # Spreads network-heavy setup across the pool's shared egress address | ||
| # instead of issuing every job's downloads at once. Configured by | ||
| # backendDelayedStart in scripts/ci/validation-test-matrix.json. | ||
| set -euo pipefail | ||
| seconds=${{ matrix.startup_delay_seconds }} | ||
| echo "Waiting $seconds second(s) before downloading prerequisites." | ||
| sleep "$seconds" | ||
|
|
||
| - name: Prepare backend prerequisites | ||
| timeout-minutes: 15 | ||
| shell: bash | ||
|
|
@@ -126,8 +156,8 @@ jobs: | |
| tee -a "$RUNNER_TEMP/mxc-ci.log" | ||
| fi | ||
|
|
||
| - name: Upload failure logs | ||
| if: failure() || cancelled() | ||
| - name: Upload logs | ||
| if: always() | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | ||
| with: | ||
| name: logs-${{ inputs.plan }}-${{ matrix.os }}-${{ matrix.architecture }}-${{ matrix.backend }}-${{ github.run_attempt }} | ||
|
|
@@ -143,7 +173,7 @@ jobs: | |
| fail-fast: false | ||
| matrix: ${{ fromJSON(needs.resolve.outputs.macos) }} | ||
| runs-on: ${{ matrix.runner }} | ||
| timeout-minutes: 60 | ||
| timeout-minutes: 180 | ||
| steps: | ||
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 | ||
|
|
||
|
|
@@ -153,6 +183,18 @@ jobs: | |
| name: ${{ matrix.artifact }} | ||
| path: artifacts/bin | ||
|
|
||
| - name: Delayed start | ||
| if: matrix.startup_delay_seconds > 0 | ||
| shell: bash | ||
| run: | | ||
| # Spreads network-heavy setup across the pool's shared egress address | ||
| # instead of issuing every job's downloads at once. Configured by | ||
| # backendDelayedStart in scripts/ci/validation-test-matrix.json. | ||
| set -euo pipefail | ||
| seconds=${{ matrix.startup_delay_seconds }} | ||
| echo "Waiting $seconds second(s) before starting tests." | ||
| sleep "$seconds" | ||
|
|
||
| - name: Run backend tests | ||
| timeout-minutes: 60 | ||
| shell: bash | ||
|
|
@@ -163,8 +205,8 @@ jobs: | |
| '${{ matrix.backend }}' "$GITHUB_WORKSPACE/artifacts/bin" 2>&1 | | ||
| tee "$RUNNER_TEMP/mxc-ci.log" | ||
|
|
||
| - name: Upload failure logs | ||
| if: failure() || cancelled() | ||
| - name: Upload logs | ||
| if: always() | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a | ||
| with: | ||
| name: logs-${{ inputs.plan }}-${{ matrix.os }}-${{ matrix.architecture }}-${{ matrix.backend }}-${{ github.run_attempt }} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thought: I guess you're trying to find the sweet spot here with timing? Question though, I forgot to ask. Do we get emails about failures anywhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, not currently. Great idea though. I'll add it to the list :)