Detailed changes
@@ -29,8 +29,6 @@ self-hosted-runner:
# Namespace Limited Preview
- namespace-profile-8x16-ubuntu-2004-arm-m4
- namespace-profile-8x32-ubuntu-2004-arm-m4
- # Namespace mac
- - namespace-profile-mac-large
# Self Hosted Runners
- self-mini-macos
- self-32vcpu-windows-2022
@@ -11,7 +11,7 @@ on:
jobs:
run_tests_mac:
if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -22,17 +22,10 @@ jobs:
mkdir -p ./../.cargo
cp ./.cargo/ci-config.toml ./../.cargo/config.toml
shell: bash -euxo pipefail {0}
- - name: steps::cache_rust_dependencies_namespace
- uses: namespacelabs/nscloud-cache-action@v1
- with:
- cache: rust
- path: ~/.rustup
- name: steps::setup_node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: '20'
- - name: steps::cargo_install_nextest
- uses: taiki-e/install-action@nextest
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 300
shell: bash -euxo pipefail {0}
@@ -90,14 +83,6 @@ jobs:
rm -rf ./../.cargo
shell: bash -euxo pipefail {0}
timeout-minutes: 60
- services:
- postgres:
- image: postgres:15
- env:
- POSTGRES_HOST_AUTH_METHOD: trust
- ports:
- - 5432:5432
- options: --health-cmd pg_isready --health-interval 500ms --health-timeout 5s --health-retries 10
run_tests_windows:
if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
runs-on: self-32vcpu-windows-2022
@@ -129,7 +114,7 @@ jobs:
timeout-minutes: 60
clippy_mac:
if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -339,7 +324,7 @@ jobs:
- run_tests_mac
- clippy_mac
- check_scripts
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -386,7 +371,7 @@ jobs:
- run_tests_mac
- clippy_mac
- check_scripts
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -13,7 +13,7 @@ on:
jobs:
check_style:
if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -180,7 +180,7 @@ jobs:
- check_style
- run_tests_windows
- clippy_windows
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -234,7 +234,7 @@ jobs:
- check_style
- run_tests_windows
- clippy_windows
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -425,7 +425,7 @@ jobs:
- check_style
- run_tests_windows
if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions')
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
@@ -436,10 +436,11 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
clean: false
- - name: nix_build::build_nix::install_nix
- uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f
- with:
- github_access_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: nix_build::build_nix::set_path
+ run: |
+ echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
+ echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
+ shell: bash -euxo pipefail {0}
- name: nix_build::build_nix::cachix_action
uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
with:
@@ -449,6 +450,12 @@ jobs:
- name: nix_build::build_nix::build
run: nix build .#default -L --accept-flake-config
shell: bash -euxo pipefail {0}
+ - name: nix_build::build_nix::limit_store
+ run: |-
+ if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
+ nix-collect-garbage -d || true
+ fi
+ shell: bash -euxo pipefail {0}
timeout-minutes: 60
continue-on-error: true
update_nightly_tag:
@@ -100,7 +100,7 @@ jobs:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -146,7 +146,7 @@ jobs:
if: |-
(github.event.action == 'labeled' && github.event.label.name == 'run-bundling') ||
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling'))
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
CARGO_INCREMENTAL: 0
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
@@ -148,7 +148,7 @@ jobs:
needs:
- orchestrate
if: needs.orchestrate.outputs.run_tests == 'true'
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -241,19 +241,11 @@ jobs:
rm -rf ./../.cargo
shell: bash -euxo pipefail {0}
timeout-minutes: 60
- services:
- postgres:
- image: postgres:15
- env:
- POSTGRES_HOST_AUTH_METHOD: trust
- ports:
- - 5432:5432
- options: --health-cmd pg_isready --health-interval 500ms --health-timeout 5s --health-retries 10
run_tests_mac:
needs:
- orchestrate
if: needs.orchestrate.outputs.run_tests == 'true'
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
steps:
- name: steps::checkout_repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -264,17 +256,10 @@ jobs:
mkdir -p ./../.cargo
cp ./.cargo/ci-config.toml ./../.cargo/config.toml
shell: bash -euxo pipefail {0}
- - name: steps::cache_rust_dependencies_namespace
- uses: namespacelabs/nscloud-cache-action@v1
- with:
- cache: rust
- path: ~/.rustup
- name: steps::setup_node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: '20'
- - name: steps::cargo_install_nextest
- uses: taiki-e/install-action@nextest
- name: steps::clear_target_dir_if_large
run: ./script/clear-target-dir-if-larger-than 300
shell: bash -euxo pipefail {0}
@@ -542,7 +527,7 @@ jobs:
needs:
- orchestrate
if: needs.orchestrate.outputs.run_nix == 'true'
- runs-on: namespace-profile-mac-large
+ runs-on: self-mini-macos
env:
ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }}
@@ -553,10 +538,11 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
clean: false
- - name: nix_build::build_nix::install_nix
- uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f
- with:
- github_access_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: nix_build::build_nix::set_path
+ run: |
+ echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
+ echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
+ shell: bash -euxo pipefail {0}
- name: nix_build::build_nix::cachix_action
uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad
with:
@@ -567,6 +553,12 @@ jobs:
- name: nix_build::build_nix::build
run: nix build .#debug -L --accept-flake-config
shell: bash -euxo pipefail {0}
+ - name: nix_build::build_nix::limit_store
+ run: |-
+ if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
+ nix-collect-garbage -d || true
+ fi
+ shell: bash -euxo pipefail {0}
timeout-minutes: 60
continue-on-error: true
check_postgres_and_protobuf_migrations:
@@ -7079,7 +7079,7 @@ dependencies = [
[[package]]
name = "gh-workflow"
version = "0.8.0"
-source = "git+https://github.com/zed-industries/gh-workflow?rev=c9eac0ed361583e1072860d96776fa52775b82ac#c9eac0ed361583e1072860d96776fa52775b82ac"
+source = "git+https://github.com/zed-industries/gh-workflow?rev=09acfdf2bd5c1d6254abefd609c808ff73547b2c#09acfdf2bd5c1d6254abefd609c808ff73547b2c"
dependencies = [
"async-trait",
"derive_more 2.0.1",
@@ -7096,7 +7096,7 @@ dependencies = [
[[package]]
name = "gh-workflow-macros"
version = "0.8.0"
-source = "git+https://github.com/zed-industries/gh-workflow?rev=c9eac0ed361583e1072860d96776fa52775b82ac#c9eac0ed361583e1072860d96776fa52775b82ac"
+source = "git+https://github.com/zed-industries/gh-workflow?rev=09acfdf2bd5c1d6254abefd609c808ff73547b2c#09acfdf2bd5c1d6254abefd609c808ff73547b2c"
dependencies = [
"heck 0.5.0",
"quote",
@@ -528,7 +528,7 @@ fancy-regex = "0.16.0"
fork = "0.4.0"
futures = "0.3"
futures-lite = "1.13"
-gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "c9eac0ed361583e1072860d96776fa52775b82ac" }
+gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "09acfdf2bd5c1d6254abefd609c808ff73547b2c" }
git2 = { version = "0.20.1", default-features = false }
globset = "0.4"
handlebars = "4.3"
@@ -0,0 +1 @@
+
@@ -122,13 +122,9 @@ impl TestDb {
#[macro_export]
macro_rules! test_both_dbs {
($test_name:ident, $postgres_test_name:ident, $sqlite_test_name:ident) => {
+ #[cfg(target_os = "macos")]
#[gpui::test]
async fn $postgres_test_name(cx: &mut gpui::TestAppContext) {
- // In CI, only run postgres tests on Linux (where we have the postgres service).
- // Locally, always run them (assuming postgres is available).
- if std::env::var("CI").is_ok() && !cfg!(target_os = "linux") {
- return;
- }
let test_db = $crate::db_tests::TestDb::postgres(cx.executor().clone());
$test_name(test_db.db()).await;
}
@@ -542,13 +542,9 @@ fn test_fuzzy_like_string() {
assert_eq!(Database::fuzzy_like_string(" z "), "%z%");
}
+#[cfg(target_os = "macos")]
#[gpui::test]
async fn test_fuzzy_search_users(cx: &mut gpui::TestAppContext) {
- // In CI, only run postgres tests on Linux (where we have the postgres service).
- // Locally, always run them (assuming postgres is available).
- if std::env::var("CI").is_ok() && !cfg!(target_os = "linux") {
- return;
- }
let test_db = TestDb::postgres(cx.executor());
let db = test_db.db();
for (i, github_login) in [
@@ -5,6 +5,7 @@ use crate::tasks::workflows::{
use super::{runners, steps, steps::named, vars};
use gh_workflow::*;
+use indoc::indoc;
pub(crate) fn build_nix(
platform: Platform,
@@ -13,6 +14,16 @@ pub(crate) fn build_nix(
cachix_filter: Option<&str>,
deps: &[&NamedJob],
) -> NamedJob {
+ // on our macs we manually install nix. for some reason the cachix action is running
+ // under a non-login /bin/bash shell which doesn't source the proper script to add the
+ // nix profile to PATH, so we manually add them here
+ pub fn set_path() -> Step<Run> {
+ named::bash(indoc! {r#"
+ echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
+ echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH"
+ "#})
+ }
+
pub fn install_nix() -> Step<Use> {
named::uses(
"cachix",
@@ -44,6 +55,14 @@ pub(crate) fn build_nix(
))
}
+ pub fn limit_store() -> Step<Run> {
+ named::bash(indoc! {r#"
+ if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then
+ nix-collect-garbage -d || true
+ fi"#
+ })
+ }
+
let runner = match platform {
Platform::Windows => unimplemented!(),
Platform::Linux => runners::LINUX_X86_BUNDLER,
@@ -67,10 +86,16 @@ pub(crate) fn build_nix(
job = job.needs(deps.iter().map(|d| d.name.clone()).collect::<Vec<String>>());
}
- job = job
- .add_step(install_nix())
- .add_step(cachix_action(cachix_filter))
- .add_step(build(&flake_output));
+ job = if platform == Platform::Linux {
+ job.add_step(install_nix())
+ .add_step(cachix_action(cachix_filter))
+ .add_step(build(&flake_output))
+ } else {
+ job.add_step(set_path())
+ .add_step(cachix_action(cachix_filter))
+ .add_step(build(&flake_output))
+ .add_step(limit_store())
+ };
NamedJob {
name: format!("build_nix_{platform}_{arch}"),
@@ -1,6 +1,5 @@
use gh_workflow::{
- Concurrency, Container, Event, Expression, Job, Port, PullRequest, Push, Run, Step, Use,
- Workflow,
+ Concurrency, Event, Expression, Job, PullRequest, Push, Run, Step, Use, Workflow,
};
use indexmap::IndexMap;
@@ -341,35 +340,19 @@ pub(crate) fn run_platform_tests(platform: Platform) -> NamedJob {
name: format!("run_tests_{platform}"),
job: release_job(&[])
.runs_on(runner)
- .when(platform == Platform::Linux, |job| {
- job.add_service(
- "postgres",
- Container::new("postgres:15")
- .add_env(("POSTGRES_HOST_AUTH_METHOD", "trust"))
- .ports(vec![Port::Name("5432:5432".into())])
- .options(
- "--health-cmd pg_isready \
- --health-interval 500ms \
- --health-timeout 5s \
- --health-retries 10",
- ),
- )
- })
.add_step(steps::checkout_repo())
.add_step(steps::setup_cargo_config(platform))
- .when(
- platform == Platform::Linux || platform == Platform::Mac,
- |this| this.add_step(steps::cache_rust_dependencies_namespace()),
- )
+ .when(platform == Platform::Linux, |this| {
+ this.add_step(steps::cache_rust_dependencies_namespace())
+ })
.when(
platform == Platform::Linux,
steps::install_linux_dependencies,
)
.add_step(steps::setup_node())
- .when(
- platform == Platform::Linux || platform == Platform::Mac,
- |job| job.add_step(steps::cargo_install_nextest()),
- )
+ .when(platform == Platform::Linux, |job| {
+ job.add_step(steps::cargo_install_nextest())
+ })
.add_step(steps::clear_target_dir_if_large(platform))
.add_step(steps::cargo_nextest(platform))
.add_step(steps::cleanup_cargo_config(platform)),
@@ -11,7 +11,7 @@ pub const LINUX_ARM_BUNDLER: Runner = Runner("namespace-profile-8x32-ubuntu-2004
// Larger Ubuntu runner with glibc 2.39 for extension bundling
pub const LINUX_LARGE_RAM: Runner = Runner("namespace-profile-8x32-ubuntu-2404");
-pub const MAC_DEFAULT: Runner = Runner("namespace-profile-mac-large");
+pub const MAC_DEFAULT: Runner = Runner("self-mini-macos");
pub const WINDOWS_DEFAULT: Runner = Runner("self-32vcpu-windows-2022");
pub struct Runner(&'static str);