ZIm/script
Kirill Bulatov ffebe2e4a6
Initial Linux nightly bundles upload (#8913)
Changes Zed CI to build and upload Linux nightly bundles.

* `todo!(linux)` are replaced with `TODO linux` to make `todo!`-based
workflows more convenient
* renames `run-build-dmg` label into `run-bundling`, also renames a few
GH Actions entries to be more generic
* make another upload path for Linux, which keeps a separate file with SHA to version the nightly artifact.
* adds a `*.deb` package building with a couple of caveats, marked with
new `TODO linux` entries:

1. `cargo-bundle` is not very flexible, so it generates artifacts with
the structure and names that we're unable to alter before/during the
generation.
For that, a set of extra steps is made by repacking the *.deb package —
this is not very portable between different Linux distros, so later one
needs to find a way to combine multiple package types in this script.

2. `cargo-bundle` is not able to properly generate the *.msi bundle
despite declaring it in the features:
https://github.com/burtonageo/cargo-bundle/issues/116
Windows needs to invent its own way of bundling or fix the tool.

3. Both `cli` and `zed` binaries are added into the archive under
`/usr/local/bin/` path with their `-$channel` suffix
(-nightly/-preview/-dev/-stable) and a `/usr/local/bin/zed ->
/usr/local/bin/cli-nightly` symlink is made to make CLI work as Zed
launcher:
```
~/work/zed kb/linux-nightly:origin/kb/linux-nightly*​ ❯ dpkg -c target/zed_amd64.deb 
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/local/
drwxr-xr-x allaptop/allaptop 0 2024-03-06 00:53 ./usr/local/bin/
-rwxr-xr-x allaptop/allaptop 8746832 2024-03-06 00:53 ./usr/local/bin/cli-nightly
-rwxr-xr-x allaptop/allaptop 689078560 2024-03-06 00:53 ./usr/local/bin/zed-nightly
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/applications/
-rw-r--r-- allaptop/allaptop       153 2024-03-06 00:53 ./usr/share/applications/zed.desktop
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/hicolor/
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/apps/
-rw-r--r-- allaptop/allaptop    716288 2024-03-06 00:53 ./usr/share/icons/hicolor/1024x1024@2x/apps/zed.png
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/
drwxr-xr-x allaptop/allaptop         0 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/apps/
-rw-r--r-- allaptop/allaptop    239870 2024-03-06 00:53 ./usr/share/icons/hicolor/512x512/apps/zed.png
lrwxrwxrwx allaptop/allaptop         0 2024-03-06 00:53 ./usr/local/bin/zed -> /usr/local/bin/cli-nightly
```

But the CLI does not work under Linux yet and there's no way to install
that CLI from Zed now; Zed binary itself is not able to open
`file/location:12:34`-like things and set up the env properly, but is
able to start or open a directory.

So, this structure can be considered temporary and changed, if needed.

4. Zed Nightly on Linux does not know how to update itself, so all
nightly publishing is not picked up automatically.

5. Rust cache from `main` builds does not get shared between CI jobs,
due to being run in a different CI job that forms a different CI key, so
```
      - name: Cache dependencies
        uses: swatinem/rust-cache@v2
        with:
          save-if: ${{ false }}
```
would not work.
This makes Linux bundling jobs long.

Release Notes:

- N/A
2024-03-07 23:22:53 +02:00
..
danger Setup Danger (#6994) 2024-01-29 11:58:24 -05:00
eula Fix typo in EULA 2023-11-09 11:08:30 -05:00
lib Deploy collab like nightly (#7174) 2024-02-01 11:54:49 -07:00
licenses Fix license generation and Closure LSP repo link (#8876) 2024-03-05 10:43:02 +02:00
update_top_ranking_issues Reinstate requirements.txt 2024-01-28 18:30:47 -05:00
bootstrap Make collab quieter on startup (#8685) 2024-03-01 13:39:13 -07:00
bump-nightly Set -e in bump-nightly script 2023-11-20 11:01:37 -08:00
bump-zed-minor-versions Remove 0-patch requirement on main in bump-zed-minor-versions 2024-02-14 13:13:44 -05:00
bump-zed-patch-version Create new Zed release channel: nightly 2023-11-17 12:13:32 +02:00
bundle-linux Initial Linux nightly bundles upload (#8913) 2024-03-07 23:22:53 +02:00
bundle-mac Initial Linux nightly bundles upload (#8913) 2024-03-07 23:22:53 +02:00
clear-target-dir-if-larger-than Don't error when checking target dir size if there is no target dir 2024-01-23 17:17:47 -08:00
clippy Add cargo xtask clippy (#8722) 2024-03-02 14:46:02 -05:00
collab-flamegraph Only 5s of data! (#8983) 2024-03-06 21:35:46 -07:00
crate-dep-graph Remove 2 suffix for collab, rope, settings, menu 2024-01-03 12:29:16 -08:00
deploy-collab just kidding (#7241) 2024-02-01 11:57:09 -07:00
deploy-postgrest No more nightly/preview collab anymore (#7112) 2024-01-30 20:11:06 -07:00
drop-test-dbs Consolidate logic for completion alongside code actions in Project 2022-02-08 14:24:45 -08:00
evaluate_semantic_index move keychain access into semantic index as opposed to on init 2023-10-24 13:26:37 +02:00
generate-eula-rtf Update EULA 2023-04-05 08:18:51 -06:00
generate-licenses Fix license generation and Closure LSP repo link (#8876) 2024-03-05 10:43:02 +02:00
get-changes-since Format scripts with Prettier (#8393) 2024-02-25 11:03:33 -05:00
get-crate-version Create preview channel 2022-10-26 16:19:19 -07:00
get-preview-channel-changes Improve get preview channel changes script 2023-11-08 11:40:53 -05:00
histogram Print error message and skip line 2024-01-23 16:52:08 +01:00
import-themes Style wrap guides for imported themes 2023-12-18 11:16:22 -05:00
kube-shell Add kube-shell script, for running shell commands in a deployed container 2021-09-29 14:55:16 -07:00
linux Add libxcb-devel build dep to void linux script (#8872) 2024-03-05 09:16:08 -08:00
metal-debug Add script to debug Metal frames 2022-01-27 08:51:55 +01:00
randomized-test-ci Remove ZED_CLIENT_SECRET_TOKEN 2024-01-23 10:34:43 -07:00
randomized-test-minimize Format scripts with Prettier (#8393) 2024-02-25 11:03:33 -05:00
reset_db Add reset_db script 2023-09-25 21:45:28 -04:00
run-local-minio Fix tracing subscriber after introducing Tokio-console (#8907) 2024-03-05 14:11:33 -08:00
seed-db Upload crashes to collab directly (#8649) 2024-03-01 13:23:44 -07:00
sqlx Add bootstrap script, avoid hard-coding zed team members 2022-08-15 13:25:31 -07:00
squawk (probably) install rosetta if it's not there 2024-01-24 11:35:59 -07:00
storybook Remove 2 suffix for ui, storybook, text 2024-01-03 12:33:51 -08:00
symbolicate Fix ./script/symbolicate on Preview crashes (#8956) 2024-03-06 10:26:50 -07:00
upload-nightly Initial Linux nightly bundles upload (#8913) 2024-03-07 23:22:53 +02:00
what-is-deployed Deploy collab like nightly (#7174) 2024-02-01 11:54:49 -07:00
zed-local Don't log errors on main (#7289) 2024-02-02 19:24:49 -07:00