mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 21:53:23 +00:00
Merge pull request #13587 from Kobzol/ci-remove-bors
Switch CI from bors to merge queue
This commit is contained in:
commit
a28c44fc96
6 changed files with 75 additions and 129 deletions
50
.github/workflows/clippy_dev.yml
vendored
50
.github/workflows/clippy_dev.yml
vendored
|
@ -1,17 +1,8 @@
|
||||||
name: Clippy Dev Test
|
name: Clippy Dev Test
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
merge_group:
|
||||||
branches:
|
|
||||||
- auto
|
|
||||||
- try
|
|
||||||
pull_request:
|
pull_request:
|
||||||
# Only run on paths, that get checked by the clippy_dev tool
|
|
||||||
paths:
|
|
||||||
- 'CHANGELOG.md'
|
|
||||||
- 'README.md'
|
|
||||||
- '**.stderr'
|
|
||||||
- '**.rs'
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
|
@ -47,28 +38,21 @@ jobs:
|
||||||
cargo check
|
cargo check
|
||||||
git reset --hard HEAD
|
git reset --hard HEAD
|
||||||
|
|
||||||
# These jobs doesn't actually test anything, but they're only used to tell
|
conclusion_dev:
|
||||||
# bors the build completed, as there is no practical way to detect when a
|
needs: [ clippy_dev ]
|
||||||
# workflow is successful listening to webhooks only.
|
# We need to ensure this job does *not* get skipped if its dependencies fail,
|
||||||
#
|
# because a skipped job is considered a success by GitHub. So we have to
|
||||||
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
# overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
|
||||||
|
# when the workflow is canceled manually.
|
||||||
end-success:
|
#
|
||||||
name: bors dev test finished
|
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
||||||
if: github.event.pusher.name == 'bors' && success()
|
if: ${{ !cancelled() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [clippy_dev]
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Mark the job as successful
|
# Manually check the status of all dependencies. `if: failure()` does not work.
|
||||||
run: exit 0
|
- name: Conclusion
|
||||||
|
run: |
|
||||||
end-failure:
|
# Print the dependent jobs to see them in the CI log
|
||||||
name: bors dev test finished
|
jq -C <<< '${{ toJson(needs) }}'
|
||||||
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
|
# Check if all jobs that we depend on (in the needs array) were successful.
|
||||||
runs-on: ubuntu-latest
|
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
||||||
needs: [clippy_dev]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Mark the job as a failure
|
|
||||||
run: exit 1
|
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
name: Clippy Test (bors)
|
name: Clippy Test (merge queue)
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
merge_group:
|
||||||
branches:
|
|
||||||
- auto
|
|
||||||
- try
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
|
@ -13,11 +10,6 @@ env:
|
||||||
CARGO_INCREMENTAL: 0
|
CARGO_INCREMENTAL: 0
|
||||||
RUSTFLAGS: -D warnings
|
RUSTFLAGS: -D warnings
|
||||||
|
|
||||||
concurrency:
|
|
||||||
# For a given workflow, if we push to the same branch, cancel all previous builds on that branch.
|
|
||||||
group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}"
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
|
@ -218,28 +210,21 @@ jobs:
|
||||||
env:
|
env:
|
||||||
INTEGRATION: ${{ matrix.integration }}
|
INTEGRATION: ${{ matrix.integration }}
|
||||||
|
|
||||||
# These jobs doesn't actually test anything, but they're only used to tell
|
conclusion:
|
||||||
# bors the build completed, as there is no practical way to detect when a
|
needs: [ changelog, base, metadata_collection, integration_build, integration ]
|
||||||
# workflow is successful listening to webhooks only.
|
# We need to ensure this job does *not* get skipped if its dependencies fail,
|
||||||
#
|
# because a skipped job is considered a success by GitHub. So we have to
|
||||||
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
# overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
|
||||||
|
# when the workflow is canceled manually.
|
||||||
end-success:
|
#
|
||||||
name: bors test finished
|
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
||||||
if: github.event.pusher.name == 'bors' && success()
|
if: ${{ !cancelled() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [changelog, base, metadata_collection, integration_build, integration]
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Mark the job as successful
|
# Manually check the status of all dependencies. `if: failure()` does not work.
|
||||||
run: exit 0
|
- name: Conclusion
|
||||||
|
run: |
|
||||||
end-failure:
|
# Print the dependent jobs to see them in the CI log
|
||||||
name: bors test finished
|
jq -C <<< '${{ toJson(needs) }}'
|
||||||
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
|
# Check if all jobs that we depend on (in the needs array) were successful.
|
||||||
runs-on: ubuntu-latest
|
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
||||||
needs: [changelog, base, metadata_collection, integration_build, integration]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Mark the job as a failure
|
|
||||||
run: exit 1
|
|
|
@ -1,24 +1,7 @@
|
||||||
name: Clippy Test
|
name: Clippy Test
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
|
||||||
# Ignore bors branches, since they are covered by `clippy_bors.yml`
|
|
||||||
branches-ignore:
|
|
||||||
- auto
|
|
||||||
- try
|
|
||||||
# Don't run Clippy tests, when only text files were modified
|
|
||||||
paths-ignore:
|
|
||||||
- 'COPYRIGHT'
|
|
||||||
- 'LICENSE-*'
|
|
||||||
- '**.md'
|
|
||||||
- '**.txt'
|
|
||||||
pull_request:
|
pull_request:
|
||||||
# Don't run Clippy tests, when only text files were modified
|
|
||||||
paths-ignore:
|
|
||||||
- 'COPYRIGHT'
|
|
||||||
- 'LICENSE-*'
|
|
||||||
- '**.md'
|
|
||||||
- '**.txt'
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
|
@ -35,7 +18,7 @@ concurrency:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
base:
|
base:
|
||||||
# NOTE: If you modify this job, make sure you copy the changes to clippy_bors.yml
|
# NOTE: If you modify this job, make sure you copy the changes to clippy_mq.yml
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -73,3 +56,24 @@ jobs:
|
||||||
run: .github/driver.sh
|
run: .github/driver.sh
|
||||||
env:
|
env:
|
||||||
OS: ${{ runner.os }}
|
OS: ${{ runner.os }}
|
||||||
|
|
||||||
|
# We need to have the "conclusion" job also on PR CI, to make it possible
|
||||||
|
# to add PRs to a merge queue.
|
||||||
|
conclusion:
|
||||||
|
needs: [ base ]
|
||||||
|
# We need to ensure this job does *not* get skipped if its dependencies fail,
|
||||||
|
# because a skipped job is considered a success by GitHub. So we have to
|
||||||
|
# overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
|
||||||
|
# when the workflow is canceled manually.
|
||||||
|
#
|
||||||
|
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
||||||
|
if: ${{ !cancelled() }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Manually check the status of all dependencies. `if: failure()` does not work.
|
||||||
|
- name: Conclusion
|
||||||
|
run: |
|
||||||
|
# Print the dependent jobs to see them in the CI log
|
||||||
|
jq -C <<< '${{ toJson(needs) }}'
|
||||||
|
# Check if all jobs that we depend on (in the needs array) were successful.
|
||||||
|
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
46
.github/workflows/remark.yml
vendored
46
.github/workflows/remark.yml
vendored
|
@ -1,13 +1,8 @@
|
||||||
name: Remark
|
name: Remark
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
merge_group:
|
||||||
branches:
|
|
||||||
- auto
|
|
||||||
- try
|
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
|
||||||
- '**.md'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
remark:
|
remark:
|
||||||
|
@ -45,28 +40,21 @@ jobs:
|
||||||
- name: Build mdbook
|
- name: Build mdbook
|
||||||
run: mdbook build book
|
run: mdbook build book
|
||||||
|
|
||||||
# These jobs doesn't actually test anything, but they're only used to tell
|
conclusion_remark:
|
||||||
# bors the build completed, as there is no practical way to detect when a
|
needs: [ remark ]
|
||||||
# workflow is successful listening to webhooks only.
|
# We need to ensure this job does *not* get skipped if its dependencies fail,
|
||||||
#
|
# because a skipped job is considered a success by GitHub. So we have to
|
||||||
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
# overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
|
||||||
|
# when the workflow is canceled manually.
|
||||||
end-success:
|
#
|
||||||
name: bors remark test finished
|
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
||||||
if: github.event.pusher.name == 'bors' && success()
|
if: ${{ !cancelled() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [remark]
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Mark the job as successful
|
# Manually check the status of all dependencies. `if: failure()` does not work.
|
||||||
run: exit 0
|
- name: Conclusion
|
||||||
|
run: |
|
||||||
end-failure:
|
# Print the dependent jobs to see them in the CI log
|
||||||
name: bors remark test finished
|
jq -C <<< '${{ toJson(needs) }}'
|
||||||
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
|
# Check if all jobs that we depend on (in the needs array) were successful.
|
||||||
runs-on: ubuntu-latest
|
jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
||||||
needs: [remark]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Mark the job as a failure
|
|
||||||
run: exit 1
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ All contributors are expected to follow the [Rust Code of Conduct].
|
||||||
- [Rust Analyzer](#rust-analyzer)
|
- [Rust Analyzer](#rust-analyzer)
|
||||||
- [How Clippy works](#how-clippy-works)
|
- [How Clippy works](#how-clippy-works)
|
||||||
- [Issue and PR triage](#issue-and-pr-triage)
|
- [Issue and PR triage](#issue-and-pr-triage)
|
||||||
- [Bors and Homu](#bors-and-homu)
|
|
||||||
- [Contributions](#contributions)
|
- [Contributions](#contributions)
|
||||||
- [License](#license)
|
- [License](#license)
|
||||||
|
|
||||||
|
@ -213,16 +212,6 @@ We have prioritization labels and a sync-blocker label, which are described belo
|
||||||
Or rather: before the sync this should be addressed,
|
Or rather: before the sync this should be addressed,
|
||||||
e.g. by removing a lint again, so it doesn't hit beta/stable.
|
e.g. by removing a lint again, so it doesn't hit beta/stable.
|
||||||
|
|
||||||
## Bors and Homu
|
|
||||||
|
|
||||||
We use a bot powered by [Homu][homu] to help automate testing and landing of pull
|
|
||||||
requests in Clippy. The bot's username is @bors.
|
|
||||||
|
|
||||||
You can find the Clippy bors queue [here][homu_queue].
|
|
||||||
|
|
||||||
If you have @bors permissions, you can find an overview of the available
|
|
||||||
commands [here][homu_instructions].
|
|
||||||
|
|
||||||
[triage]: https://forge.rust-lang.org/release/triage-procedure.html
|
[triage]: https://forge.rust-lang.org/release/triage-procedure.html
|
||||||
[l-crash]: https://github.com/rust-lang/rust-clippy/labels/L-crash
|
[l-crash]: https://github.com/rust-lang/rust-clippy/labels/L-crash
|
||||||
[l-bug]: https://github.com/rust-lang/rust-clippy/labels/L-bug
|
[l-bug]: https://github.com/rust-lang/rust-clippy/labels/L-bug
|
||||||
|
@ -230,9 +219,6 @@ commands [here][homu_instructions].
|
||||||
[p-medium]: https://github.com/rust-lang/rust-clippy/labels/P-medium
|
[p-medium]: https://github.com/rust-lang/rust-clippy/labels/P-medium
|
||||||
[p-high]: https://github.com/rust-lang/rust-clippy/labels/P-high
|
[p-high]: https://github.com/rust-lang/rust-clippy/labels/P-high
|
||||||
[l-sync-blocker]: https://github.com/rust-lang/rust-clippy/labels/L-sync-blocker
|
[l-sync-blocker]: https://github.com/rust-lang/rust-clippy/labels/L-sync-blocker
|
||||||
[homu]: https://github.com/rust-lang/homu
|
|
||||||
[homu_instructions]: https://bors.rust-lang.org/
|
|
||||||
[homu_queue]: https://bors.rust-lang.org/queue/clippy
|
|
||||||
|
|
||||||
## Contributions
|
## Contributions
|
||||||
|
|
||||||
|
@ -244,7 +230,7 @@ All PRs should include a `changelog` entry with a short comment explaining the c
|
||||||
"what do you believe is important from an outsider's perspective?" Often, PRs are only related to a single property of a
|
"what do you believe is important from an outsider's perspective?" Often, PRs are only related to a single property of a
|
||||||
lint, and then it's good to mention that one. Otherwise, it's better to include too much detail than too little.
|
lint, and then it's good to mention that one. Otherwise, it's better to include too much detail than too little.
|
||||||
|
|
||||||
Clippy's [changelog] is created from these comments. Every release, someone gets all commits from bors with a
|
Clippy's [changelog] is created from these comments. Every release, someone gets all merge commits with a
|
||||||
`changelog: XYZ` entry and combines them into the changelog. This is a manual process.
|
`changelog: XYZ` entry and combines them into the changelog. This is a manual process.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
|
@ -53,7 +53,6 @@ book](../lints.md).
|
||||||
> - IDE setup
|
> - IDE setup
|
||||||
> - High level overview on how Clippy works
|
> - High level overview on how Clippy works
|
||||||
> - Triage procedure
|
> - Triage procedure
|
||||||
> - Bors and Homu
|
|
||||||
|
|
||||||
[ast]: https://rustc-dev-guide.rust-lang.org/syntax-intro.html
|
[ast]: https://rustc-dev-guide.rust-lang.org/syntax-intro.html
|
||||||
[hir]: https://rustc-dev-guide.rust-lang.org/hir.html
|
[hir]: https://rustc-dev-guide.rust-lang.org/hir.html
|
||||||
|
|
Loading…
Reference in a new issue