ci: Run clippy for x86_64-apple-darwin target (#52036)
Release Notes: - N/A --------- Co-authored-by: Finn Evers <finn@zed.dev> Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
This commit is contained in:
1 parent
a64259f719
commit
f7c1edfe24
6 files changed
+70
-17
No files matched your search
@@ -263,6 +263,39 @@ jobs:
|
||||
- name: steps::show_sccache_stats
|
||||
run: sccache --show-stats || true
|
||||
timeout-minutes: 60
|
||||
clippy_mac_x86_64:
|
||||
needs:
|
||||
- orchestrate
|
||||
if: needs.orchestrate.outputs.run_tests == 'true'
|
||||
runs-on: namespace-profile-mac-large
|
||||
steps:
|
||||
- name: steps::checkout_repo
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
with:
|
||||
clean: false
|
||||
- name: steps::setup_cargo_config
|
||||
run: |
|
||||
mkdir -p ./../.cargo
|
||||
cp ./.cargo/ci-config.toml ./../.cargo/config.toml
|
||||
- name: steps::cache_rust_dependencies_namespace
|
||||
uses: namespacelabs/nscloud-cache-action@v1
|
||||
with:
|
||||
cache: rust
|
||||
path: ~/.rustup
|
||||
- name: steps::install_rustup_target
|
||||
run: rustup target add x86_64-apple-darwin
|
||||
- name: steps::setup_sccache
|
||||
run: ./script/setup-sccache
|
||||
env:
|
||||
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
|
||||
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
||||
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
||||
SCCACHE_BUCKET: sccache-zed
|
||||
- name: steps::clippy
|
||||
run: ./script/clippy --target x86_64-apple-darwin
|
||||
- name: steps::show_sccache_stats
|
||||
run: sccache --show-stats || true
|
||||
timeout-minutes: 60
|
||||
run_tests_windows:
|
||||
needs:
|
||||
- orchestrate
|
||||
@@ -731,6 +764,7 @@ jobs:
|
||||
- clippy_windows
|
||||
- clippy_linux
|
||||
- clippy_mac
|
||||
- clippy_mac_x86_64
|
||||
- run_tests_windows
|
||||
- run_tests_linux
|
||||
- run_tests_mac
|
||||
@@ -760,6 +794,7 @@ jobs:
|
||||
check_result "clippy_windows" "$RESULT_CLIPPY_WINDOWS"
|
||||
check_result "clippy_linux" "$RESULT_CLIPPY_LINUX"
|
||||
check_result "clippy_mac" "$RESULT_CLIPPY_MAC"
|
||||
check_result "clippy_mac_x86_64" "$RESULT_CLIPPY_MAC_X86_64"
|
||||
check_result "run_tests_windows" "$RESULT_RUN_TESTS_WINDOWS"
|
||||
check_result "run_tests_linux" "$RESULT_RUN_TESTS_LINUX"
|
||||
check_result "run_tests_mac" "$RESULT_RUN_TESTS_MAC"
|
||||
@@ -779,6 +814,7 @@ jobs:
|
||||
RESULT_CLIPPY_WINDOWS: ${{ needs.clippy_windows.result }}
|
||||
RESULT_CLIPPY_LINUX: ${{ needs.clippy_linux.result }}
|
||||
RESULT_CLIPPY_MAC: ${{ needs.clippy_mac.result }}
|
||||
RESULT_CLIPPY_MAC_X86_64: ${{ needs.clippy_mac_x86_64.result }}
|
||||
RESULT_RUN_TESTS_WINDOWS: ${{ needs.run_tests_windows.result }}
|
||||
RESULT_RUN_TESTS_LINUX: ${{ needs.run_tests_linux.result }}
|
||||
RESULT_RUN_TESTS_MAC: ${{ needs.run_tests_mac.result }}
|
||||
|
||||
@@ -33,7 +33,7 @@ fn style() -> NamedJob {
|
||||
.add_step(steps::cache_rust_dependencies_namespace())
|
||||
.map(steps::install_linux_dependencies)
|
||||
.add_step(steps::cargo_fmt())
|
||||
.add_step(steps::clippy(Platform::Linux)),
|
||||
.add_step(steps::clippy(Platform::Linux, None)),
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@ pub(crate) fn release() -> Workflow {
|
||||
let macos_tests = run_tests::run_platform_tests_no_filter(Platform::Mac);
|
||||
let linux_tests = run_tests::run_platform_tests_no_filter(Platform::Linux);
|
||||
let windows_tests = run_tests::run_platform_tests_no_filter(Platform::Windows);
|
||||
let macos_clippy = run_tests::clippy(Platform::Mac);
|
||||
let linux_clippy = run_tests::clippy(Platform::Linux);
|
||||
let windows_clippy = run_tests::clippy(Platform::Windows);
|
||||
let macos_clippy = run_tests::clippy(Platform::Mac, None);
|
||||
let linux_clippy = run_tests::clippy(Platform::Linux, None);
|
||||
let windows_clippy = run_tests::clippy(Platform::Windows, None);
|
||||
let check_scripts = run_tests::check_scripts();
|
||||
|
||||
let create_draft_release = create_draft_release();
|
||||
|
||||
@@ -18,7 +18,7 @@ pub fn release_nightly() -> Workflow {
|
||||
let style = check_style();
|
||||
// run only on windows as that's our fastest platform right now.
|
||||
let tests = run_platform_tests_no_filter(Platform::Windows);
|
||||
let clippy_job = clippy(Platform::Windows);
|
||||
let clippy_job = clippy(Platform::Windows, None);
|
||||
let nightly = Some(ReleaseChannel::Nightly);
|
||||
|
||||
let bundle = ReleaseBundleJobs {
|
||||
|
||||
@@ -15,7 +15,7 @@ use crate::tasks::workflows::{
|
||||
};
|
||||
|
||||
use super::{
|
||||
runners::{self, Platform},
|
||||
runners::{self, Arch, Platform},
|
||||
steps::{self, FluentBuilder, NamedJob, named, release_job},
|
||||
};
|
||||
|
||||
@@ -48,9 +48,10 @@ pub(crate) fn run_tests() -> Workflow {
|
||||
let mut jobs = vec![
|
||||
orchestrate,
|
||||
check_style(),
|
||||
should_run_tests.guard(clippy(Platform::Windows)),
|
||||
should_run_tests.guard(clippy(Platform::Linux)),
|
||||
should_run_tests.guard(clippy(Platform::Mac)),
|
||||
should_run_tests.guard(clippy(Platform::Windows, None)),
|
||||
should_run_tests.guard(clippy(Platform::Linux, None)),
|
||||
should_run_tests.guard(clippy(Platform::Mac, None)),
|
||||
should_run_tests.guard(clippy(Platform::Mac, Some(Arch::X86_64))),
|
||||
should_run_tests.guard(run_platform_tests(Platform::Windows)),
|
||||
should_run_tests.guard(run_platform_tests(Platform::Linux)),
|
||||
should_run_tests.guard(run_platform_tests(Platform::Mac)),
|
||||
@@ -489,7 +490,12 @@ fn check_workspace_binaries() -> NamedJob {
|
||||
))
|
||||
}
|
||||
|
||||
pub(crate) fn clippy(platform: Platform) -> NamedJob {
|
||||
pub(crate) fn clippy(platform: Platform, arch: Option<Arch>) -> NamedJob {
|
||||
let target = arch.map(|arch| match (platform, arch) {
|
||||
(Platform::Mac, Arch::X86_64) => "x86_64-apple-darwin",
|
||||
(Platform::Mac, Arch::AARCH64) => "aarch64-apple-darwin",
|
||||
_ => unimplemented!("cross-arch clippy not supported for {platform}/{arch}"),
|
||||
});
|
||||
let runner = match platform {
|
||||
Platform::Windows => runners::WINDOWS_DEFAULT,
|
||||
Platform::Linux => runners::LINUX_DEFAULT,
|
||||
@@ -507,16 +513,20 @@ pub(crate) fn clippy(platform: Platform) -> NamedJob {
|
||||
platform == Platform::Linux,
|
||||
steps::install_linux_dependencies,
|
||||
)
|
||||
.when_some(target, |this, target| {
|
||||
this.add_step(steps::install_rustup_target(target))
|
||||
})
|
||||
.add_step(steps::setup_sccache(platform))
|
||||
.add_step(steps::clippy(platform))
|
||||
.add_step(steps::clippy(platform, target))
|
||||
.add_step(steps::show_sccache_stats(platform));
|
||||
if platform == Platform::Linux {
|
||||
job = use_clang(job);
|
||||
}
|
||||
NamedJob {
|
||||
name: format!("clippy_{platform}"),
|
||||
job,
|
||||
}
|
||||
let name = match arch {
|
||||
Some(arch) => format!("clippy_{platform}_{arch}"),
|
||||
None => format!("clippy_{platform}"),
|
||||
};
|
||||
NamedJob { name, job }
|
||||
}
|
||||
|
||||
pub(crate) fn run_platform_tests(platform: Platform) -> NamedJob {
|
||||
|
||||
@@ -211,13 +211,20 @@ pub fn clear_target_dir_if_large(platform: Platform) -> Step<Run> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn clippy(platform: Platform) -> Step<Run> {
|
||||
pub fn clippy(platform: Platform, target: Option<&str>) -> Step<Run> {
|
||||
match platform {
|
||||
Platform::Windows => named::pwsh("./script/clippy.ps1"),
|
||||
_ => named::bash("./script/clippy"),
|
||||
_ => match target {
|
||||
Some(target) => named::bash(format!("./script/clippy --target {target}")),
|
||||
None => named::bash("./script/clippy"),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub fn install_rustup_target(target: &str) -> Step<Run> {
|
||||
named::bash(format!("rustup target add {target}"))
|
||||
}
|
||||
|
||||
pub fn cache_rust_dependencies_namespace() -> Step<Use> {
|
||||
named::uses("namespacelabs", "nscloud-cache-action", "v1")
|
||||
.add_with(("cache", "rust"))
|
||||
|
||||
Reference in new issue
Block a user