File tree Expand file tree Collapse file tree 3 files changed +110
-4
lines changed Expand file tree Collapse file tree 3 files changed +110
-4
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,28 @@ pull_request_rules:
2424 - -files~=^\.github/(actions|workflows)/.*\.ya?ml$
2525 - -files~=^\.github/workflows/actionlint\.
2626
27+ # medium e2e workflow
28+ - or :
29+ - and :
30+ # note this should match the triggering criteria in 'e2e-nvidia-l4-x1.yml'
31+ - check-success~=e2e-medium-workflow-complete
32+ - or :
33+ - files~=\.py$
34+ - files=pyproject.toml
35+ - files=tox.ini
36+ - files=requirements.txt
37+ - files=requirements-dev.txt
38+ - files=constraints-dev.txt
39+ - files~=^\.github/workflows/.*\.yml$ # This workflow
40+ - and :
41+ - files~=\.py$
42+ - files=pyproject.toml
43+ - files=tox.ini
44+ - files=requirements.txt
45+ - files=requirements-dev.txt
46+ - files=constraints-dev.txt
47+ - files~=^\.github/workflows/.*\.yml$ # This workflow
48+
2749 # code lint workflow
2850 - or :
2951 - and :
Original file line number Diff line number Diff line change @@ -4,9 +4,10 @@ name: E2E (NVIDIA L40S x4) SDK Test
44
55on :
66 # only run on PRs that touch certain regex paths
7- pull_request :
7+ pull_request_target :
88 branches :
99 - main
10+ - release-*
1011 paths :
1112 # note this should match the merging criteria in 'mergify.yml'
1213 - " **.py"
1516 - " requirements.txt"
1617 - " requirements-dev.txt"
1718 - " constraints-dev.txt"
18- - " .github/workflows/e2e-nvidia-l40s-x4-sdk.yaml " # This workflow
19+ - " .github/workflows/*.yml " # This workflow
1920 workflow_dispatch :
2021 inputs :
2122 pr_or_branch :
2223 description : ' pull request number or branch name'
2324 required : true
2425 default : ' main'
26+
2527concurrency :
2628 group : ${{ github.workflow }}-${{ github.event.number || github.ref }}
2729 cancel-in-progress : true
2830
2931env :
3032 TMPDIR : /home/tmp
3133
34+ defaults :
35+ run :
36+ shell : bash
37+
38+
39+ permissions :
40+ contents : read
41+
3242jobs :
3343 start-large-ec2-runner :
3444 runs-on : ubuntu-latest
@@ -97,8 +107,11 @@ jobs:
97107 - start-large-ec2-runner
98108 runs-on : ${{ needs.start-large-ec2-runner.outputs.label }}
99109
100- permissions :
101- pull-requests : write
110+
111+ # It is important that this job has no write permissions and has
112+ # no access to any secrets. This part (e2e-medium-test) is where we are running
113+ # untrusted code from PRs.
114+ permissions : {}
102115
103116 steps :
104117 - name : Install Packages
@@ -308,3 +321,14 @@ jobs:
308321 run : |
309322 echo "::warning::Failed to upload Phase 2 loss graph to S3. This won't block the workflow, but you may want to investigate."
310323 echo "Loss graph upload failed" >> "${GITHUB_STEP_SUMMARY}"
324+
325+ e2e-medium-workflow-complete :
326+ # we don't want to block PRs on failed EC2 cleanup
327+ # so not requiring "stop-medium-ec2-runner" as well
328+ permissions :
329+ checks : read
330+ uses : ./.github/workflows/status-checks.yml
331+ with :
332+ job_ids : >- # Space-separated job ids to wait on for status checks
333+ start-large-ec2-runner
334+ e2e-medium-test
Original file line number Diff line number Diff line change 1+ # SPDX-License-Identifier: Apache-2.0
2+ # yamllint disable rule:line-length
3+
4+ name : Status Checks Reusable Workflow
5+
6+ on :
7+ workflow_call :
8+ inputs :
9+ job_ids :
10+ description : ' Space-separated job ids to wait on for status checks'
11+ required : true
12+ type : string
13+ delay :
14+ description : ' Period in seconds to wait before first poll of GitHub Check Runs'
15+ required : false
16+ type : number
17+ default : 10
18+ interval :
19+ description : ' Interval or period in seconds between polling GitHub Check Runs'
20+ required : false
21+ type : number
22+ default : 10
23+ timeout :
24+ description : ' Timeout in seconds to complete polling GitHub Check Runs'
25+ required : false
26+ type : number
27+ default : 3600
28+
29+ env :
30+ LC_ALL : en_US.UTF-8
31+
32+ defaults :
33+ run :
34+ shell : bash
35+
36+ permissions :
37+ checks : read
38+
39+ jobs :
40+ status-checks :
41+ runs-on : ubuntu-latest
42+ steps :
43+ - name : " Harden Runner"
44+ uses : step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0
45+ with :
46+ egress-policy : audit # TODO: change to 'egress-policy: block' after couple of runs
47+
48+ - name : " Set status check variables"
49+ id : set_variables
50+ run : |
51+ jq -nr '[$ARGS.positional[] | split("\\s"; null) | map(select(. != ""))] | flatten | join("|") | ("match_pattern=(" + . + ")")' --args "${{ inputs.job_ids }}" >> "$GITHUB_OUTPUT"
52+
53+ - name : " Wait for status checks"
54+ uses : poseidon/wait-for-status-checks@899c768d191b56eef585c18f8558da19e1f3e707 # v0.6.0
55+ with :
56+ token : ${{ secrets.GITHUB_TOKEN }}
57+ match_pattern : ${{ steps.set_variables.outputs.match_pattern }}
58+ delay : ${{ inputs.delay }}
59+ interval : ${{ inputs.interval }}
60+ timeout : ${{ inputs.timeout }}
You can’t perform that action at this time.
0 commit comments