@@ -714,48 +714,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
nix-build:
- timeout-minutes: 60
- name: Nix Build
- continue-on-error: true
+ uses: ./.github/workflows/nix.yml
if: github.repository_owner == 'zed-industries' && contains(github.event.pull_request.labels.*.name, 'run-nix')
- strategy:
- fail-fast: false
- matrix:
- system:
- - os: x86 Linux
- runner: buildjet-16vcpu-ubuntu-2204
- install_nix: true
- - os: arm Mac
- runner: [macOS, ARM64, test]
- install_nix: false
- runs-on: ${{ matrix.system.runner }}
- env:
- ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
- GIT_LFS_SKIP_SMUDGE: 1 # breaks the livekit rust sdk examples which we don't actually depend on
- steps:
- - name: Checkout repo
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- with:
- clean: false
- - name: Set path
- if: ${{ ! matrix.system.install_nix }}
- run: |
- echo "/nix/var/nix/profiles/default/bin" >> $GITHUB_PATH
- echo "/Users/administrator/.nix-profile/bin" >> $GITHUB_PATH
-
- - uses: cachix/install-nix-action@d1ca217b388ee87b2507a9a93bf01368bde7cec2 # v31
- if: ${{ matrix.system.install_nix }}
- with:
- github_access_token: ${{ secrets.GITHUB_TOKEN }}
-
- - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
- with:
- name: zed-industries
- authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- skipPush: true
- - run: nix build .#debug
- - name: Limit /nix/store to 50GB
- run: "[ $(du -sm /nix/store | cut -f1) -gt 50000 ] && nix-collect-garbage -d"
+ with:
+ flake-output: debug
+ # excludes the final package to only cache dependencies
+ cachix-filter: "-zed-editor-[0-9.]*-nightly"
auto-release-preview:
name: Auto release preview
@@ -0,0 +1,65 @@
+name: "Nix build"
+
+on:
+ workflow_call:
+ inputs:
+ flake-output:
+ type: string
+ default: "default"
+ cachix-filter:
+ type: string
+ default: ""
+
+jobs:
+ nix-build:
+ timeout-minutes: 60
+ name: (${{ matrix.system.os }}) Nix Build
+ continue-on-error: true # TODO: remove when we want this to start blocking CI
+ strategy:
+ fail-fast: false
+ matrix:
+ system:
+ - os: x86 Linux
+ runner: buildjet-16vcpu-ubuntu-2204
+ install_nix: true
+ - os: arm Mac
+ runner: [macOS, ARM64, test]
+ install_nix: false
+ if: github.repository_owner == 'zed-industries'
+ runs-on: ${{ matrix.system.runner }}
+ env:
+ ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
+ ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
+ GIT_LFS_SKIP_SMUDGE: 1 # breaks the livekit rust sdk examples which we don't actually depend on
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
+ with:
+ clean: false
+
+ # 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
+ - name: Set path
+ if: ${{ ! matrix.system.install_nix }}
+ run: |
+ echo "/nix/var/nix/profiles/default/bin" >> $GITHUB_PATH
+ echo "/Users/administrator/.nix-profile/bin" >> $GITHUB_PATH
+
+ - uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f # v31
+ if: ${{ matrix.system.install_nix }}
+ with:
+ github_access_token: ${{ secrets.GITHUB_TOKEN }}
+
+ - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
+ with:
+ name: zed
+ authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
+ pushFilter: "${{ inputs.cachix-filter }}"
+
+ - run: nix build .#${{ inputs.flake-output }} -L --accept-flake-config
+
+ - name: Limit /nix/store to 50GB on macs
+ if: ${{ ! matrix.system.install_nix }}
+ run: |
+ [ $(du -sm /nix/store | cut -f1) -gt 50000 ] && nix-collect-garbage -d || :
@@ -2,11 +2,11 @@
"nodes": {
"crane": {
"locked": {
- "lastModified": 1742394900,
- "narHash": "sha256-vVOAp9ahvnU+fQoKd4SEXB2JG2wbENkpqcwlkIXgUC0=",
+ "lastModified": 1748047550,
+ "narHash": "sha256-t0qLLqb4C1rdtiY8IFRH5KIapTY/n3Lqt57AmxEv9mk=",
"owner": "ipetkov",
"repo": "crane",
- "rev": "70947c1908108c0c551ddfd73d4f750ff2ea67cd",
+ "rev": "b718a78696060df6280196a6f992d04c87a16aef",
"type": "github"
},
"original": {
@@ -17,11 +17,11 @@
},
"flake-compat": {
"locked": {
- "lastModified": 1733328505,
- "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "lastModified": 1747046372,
+ "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
@@ -33,10 +33,10 @@
"nixpkgs": {
"locked": {
"lastModified": 315532800,
- "narHash": "sha256-kgy4FnRFGj62QO3kI6a6glFl8XUtKMylWGybnVCvycM=",
- "rev": "b3582c75c7f21ce0b429898980eddbbf05c68e55",
+ "narHash": "sha256-3c6Axl3SGIXCixGtpSJaMXLkkSRihHDlLaGewDEgha0=",
+ "rev": "3108eaa516ae22c2360928589731a4f1581526ef",
"type": "tarball",
- "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.05pre796313.b3582c75c7f2/nixexprs.tar.xz?rev=b3582c75c7f21ce0b429898980eddbbf05c68e55"
+ "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre806109.3108eaa516ae/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
@@ -58,11 +58,11 @@
]
},
"locked": {
- "lastModified": 1747363019,
- "narHash": "sha256-N4dwkRBmpOosa4gfFkFf/LTD8oOcNkAyvZ07JvRDEf0=",
+ "lastModified": 1748227081,
+ "narHash": "sha256-RLnN7LBxhEdCJ6+rIL9sbhjBVDaR6jG377M/CLP/fmE=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "0e624f2b1972a34be1a9b35290ed18ea4b419b6f",
+ "rev": "1cbe817fd8c64a9f77ba4d7861a4839b0b15983e",
"type": "github"
},
"original": {
@@ -54,11 +54,9 @@
};
nixConfig = {
- extra-substituters = [
- "https://zed-industries.cachix.org"
- ];
+ extra-substituters = [ "https://zed.cachix.org" ];
extra-trusted-public-keys = [
- "zed-industries.cachix.org-1:QW3RoXK0Lm4ycmU5/3bmYRd3MLf4RbTGPqRulGlX5W0="
+ "zed.cachix.org-1:/pHQ6dpMsAZk2DiP4WCL0p9YDNKWj2Q5FL20bNmw1cU="
];
};
}