Skip to content

Commit bd9ad10

Browse files
authored
Run semver-checks on PRs submitted by external contributors (#3291)
## Motivation and Context Enables `cargo semver-checks` in CI for PRs created by external contributors ## Description For instance, we skipped a run of `cargo semver-checks` in #3286 and failed to detect [a breaking change](#3286 (comment)) programmatically. With this PR, the workflow will run a job `semver-checks` even if the preceding jobs `save-docker-login-token` or `acquire-base-image` are skipped. Those jobs are relevant when the PR made changes to build tools, which is less likely for PRs created by external contributors, so it's reasonable to skip them and still run the `semver-checks` job. Furthermore, this PR enables `semver-checks` to run against all crates in `tmp-codegen-diff/aws-sdk/sdk/`, not just those limited by `list(os.listdir())[:10]`. ## Testing Tested the change against [a dummy PR](#3288) I created from my fork of `smithy-rs`. Specifically, `semver-checks` [caught the aforementioned breaking change](https://github.com/smithy-lang/smithy-rs/actions/runs/7121830175/job/19391798131#step:4:681) in CI. ---- _By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice._
1 parent 2c993e5 commit bd9ad10

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

.github/workflows/ci-pr.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ jobs:
114114
needs:
115115
- save-docker-login-token
116116
- acquire-base-image
117+
# We need `always` here otherwise this job won't run if the previous job has been skipped
118+
# See https://samanpavel.medium.com/github-actions-conditional-job-execution-e6aa363d2867
119+
if: |
120+
always() &&
121+
!contains(needs.*.result, 'failure') &&
122+
!contains(needs.*.result, 'cancelled')
117123
steps:
118124
- uses: actions/checkout@v3
119125
with:

tools/ci-scripts/codegen-diff/semver-checks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def main(skip_generation=False):
3737
deny_list = [
3838
# add crate names here to exclude them from the semver checks
3939
]
40-
for path in list(os.listdir())[:10]:
40+
for path in os.listdir():
4141
eprint(f'checking {path}...', end='')
4242
if path in deny_list:
4343
eprint(f"skipping {path} because it is in 'deny_list'")

0 commit comments

Comments
 (0)