linux: Install dependencies when bundling nightly (#14566)

Thorsten Ball created

Release Notes:

- N/A

Change summary

.github/workflows/release_nightly.yml | 62 ++++++++++++++++++++++++++--
1 file changed, 56 insertions(+), 6 deletions(-)

Detailed changes

.github/workflows/release_nightly.yml 🔗

@@ -93,15 +93,13 @@ jobs:
       - name: Upload Zed Nightly
         run: script/upload-nightly macos
 
-  bundle-linux:
-    strategy:
-      matrix:
-        machine: [deploy, hosted-linux-arm-1]
+  bundle-linux-x86:
     timeout-minutes: 60
-    name: Create a Linux *.tar.gz bundle
+    name: Create a Linux *.tar.gz bundle for x86
     if: github.repository_owner == 'zed-industries'
     runs-on:
-      - ${{ matrix.machine }}
+      - self-hosted
+      - deploy
     needs: tests
     env:
       DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
@@ -128,3 +126,55 @@ jobs:
 
       - name: Upload Zed Nightly
         run: script/upload-nightly linux-targz
+
+  bundle-linux-arm:
+    timeout-minutes: 60
+    name: Create a Linux *.tar.gz bundle for ARM
+    if: github.repository_owner == 'zed-industries'
+    runs-on:
+      - self-hosted
+      - hosted-linux-arm-1
+    needs: tests
+    env:
+      DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }}
+      DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }}
+      ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }}
+    steps:
+      - name: Checkout repo
+        uses: actions/checkout@v4
+        with:
+          clean: false
+
+      - name: "Setup jq"
+        uses: dcarbone/install-jq-action@v2
+
+      - name: Set up Clang
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y llvm-10 clang-10 build-essential cmake pkg-config libasound2-dev libfontconfig-dev libwayland-dev libxkbcommon-x11-dev libssl-dev libsqlite3-dev libzstd-dev libvulkan1 libgit2-dev
+          echo "/usr/lib/llvm-10/bin" >> $GITHUB_PATH
+
+      - uses: rui314/setup-mold@v1
+        with:
+          mold-version: 2.32.0
+
+      - name: rustup
+        run: |
+          curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+          echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+
+      - name: Limit target directory size
+        run: script/clear-target-dir-if-larger-than 100
+
+      - name: Set release channel to nightly
+        run: |
+          set -euo pipefail
+          version=$(git rev-parse --short HEAD)
+          echo "Publishing version: ${version} on release channel nightly"
+          echo "nightly" > crates/zed/RELEASE_CHANNEL
+
+      - name: Create Linux .tar.gz bundle
+        run: script/bundle-linux
+
+      - name: Upload Zed Nightly
+        run: script/upload-nightly linux-targz