1name: Release Nightly
2
3on:
4 push:
5 tags:
6 - "nightly"
7
8env:
9 CARGO_TERM_COLOR: always
10 CARGO_INCREMENTAL: 0
11 RUST_BACKTRACE: 1
12
13jobs:
14 style:
15 timeout-minutes: 60
16 name: Check formatting and Clippy lints
17 if: github.repository_owner == 'zed-industries'
18 runs-on:
19 - self-hosted
20 - test
21 steps:
22 - name: Checkout repo
23 uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
24 with:
25 clean: false
26 fetch-depth: 0
27
28 - name: Run style checks
29 uses: ./.github/actions/check_style
30
31 - name: Run clippy
32 run: ./script/clippy
33
34 tests:
35 timeout-minutes: 60
36 name: Run tests
37 if: github.repository_owner == 'zed-industries'
38 runs-on:
39 - self-hosted
40 - test
41 needs: style
42 steps:
43 - name: Checkout repo
44 uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
45 with:
46 clean: false
47
48 - name: Run tests
49 uses: ./.github/actions/run_tests
50
51 bundle-mac:
52 timeout-minutes: 60
53 name: Create a macOS bundle
54 if: github.repository_owner == 'zed-industries'
55 runs-on:
56 - self-hosted
57 - bundle
58 needs: tests
59 env:
60 MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
61 MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
62 APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
63 APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
64 DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
65 DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
66 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
67 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
68 steps:
69 - name: Install Node
70 uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4
71 with:
72 node-version: "18"
73
74 - name: Checkout repo
75 uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
76 with:
77 clean: false
78
79 - name: Set release channel to nightly
80 run: |
81 set -eu
82 version=$(git rev-parse --short HEAD)
83 echo "Publishing version: ${version} on release channel nightly"
84 echo "nightly" > crates/zed/RELEASE_CHANNEL
85
86 - name: Generate license file
87 run: script/generate-licenses
88
89 - name: Create macOS app bundle
90 run: script/bundle-mac
91
92 - name: Upload Zed Nightly
93 run: script/upload-nightly macos
94
95 bundle-linux-x86:
96 timeout-minutes: 60
97 name: Create a Linux *.tar.gz bundle for x86
98 if: github.repository_owner == 'zed-industries'
99 runs-on:
100 - buildjet-16vcpu-ubuntu-2204
101 needs: tests
102 env:
103 DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
104 DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
105 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
106 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
107 steps:
108 - name: Checkout repo
109 uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
110 with:
111 clean: false
112
113 - name: Add Rust to the PATH
114 run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
115
116 - name: Install Linux dependencies
117 run: ./script/linux
118
119 - name: Limit target directory size
120 run: script/clear-target-dir-if-larger-than 100
121
122 - name: Set release channel to nightly
123 run: |
124 set -euo pipefail
125 version=$(git rev-parse --short HEAD)
126 echo "Publishing version: ${version} on release channel nightly"
127 echo "nightly" > crates/zed/RELEASE_CHANNEL
128
129 - name: Create Linux .tar.gz bundle
130 run: script/bundle-linux
131
132 - name: Upload Zed Nightly
133 run: script/upload-nightly linux-targz
134
135 bundle-linux-arm:
136 timeout-minutes: 60
137 name: Create a Linux *.tar.gz bundle for ARM
138 if: github.repository_owner == 'zed-industries'
139 runs-on:
140 - hosted-linux-arm-1
141 needs: tests
142 env:
143 DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
144 DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
145 ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
146 ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }}
147 steps:
148 - name: Checkout repo
149 uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
150 with:
151 clean: false
152
153 - name: Install Linux dependencies
154 run: ./script/linux
155
156 - name: Limit target directory size
157 run: script/clear-target-dir-if-larger-than 100
158
159 - name: Set release channel to nightly
160 run: |
161 set -euo pipefail
162 version=$(git rev-parse --short HEAD)
163 echo "Publishing version: ${version} on release channel nightly"
164 echo "nightly" > crates/zed/RELEASE_CHANNEL
165
166 - name: Create Linux .tar.gz bundle
167 run: script/bundle-linux
168
169 - name: Upload Zed Nightly
170 run: script/upload-nightly linux-targz