Release Nightly #155
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Nightly | |
on: | |
schedule: | |
# Fire every day at 7:00am UTC (Roughly before EU workday and after US workday) | |
- cron: "0 7 * * *" | |
push: | |
tags: | |
- "nightly" | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
jobs: | |
style: | |
timeout-minutes: 60 | |
name: Check formatting and Clippy lints | |
if: github.repository_owner == 'zed-industries' | |
runs-on: | |
- self-hosted | |
- test | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
clean: false | |
fetch-depth: 0 | |
- name: Run style checks | |
uses: ./.github/actions/check_style | |
- name: Run clippy | |
run: ./script/clippy | |
tests: | |
timeout-minutes: 60 | |
name: Run tests | |
if: github.repository_owner == 'zed-industries' | |
runs-on: | |
- self-hosted | |
- test | |
needs: style | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
clean: false | |
- name: Run tests | |
uses: ./.github/actions/run_tests | |
bundle-mac: | |
timeout-minutes: 60 | |
name: Create a macOS bundle | |
if: github.repository_owner == 'zed-industries' | |
runs-on: | |
- self-hosted | |
- bundle | |
needs: tests | |
env: | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} | |
APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} | |
APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} | |
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: Install Node | |
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4 | |
with: | |
node-version: "18" | |
- name: Checkout repo | |
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
clean: false | |
- name: Set release channel to nightly | |
run: | | |
set -eu | |
version=$(git rev-parse --short HEAD) | |
echo "Publishing version: ${version} on release channel nightly" | |
echo "nightly" > crates/zed/RELEASE_CHANNEL | |
- name: Generate license file | |
run: script/generate-licenses | |
- name: Create macOS app bundle | |
run: script/bundle-mac | |
- name: Upload Zed Nightly | |
run: script/upload-nightly macos | |
bundle-linux-x86: | |
timeout-minutes: 60 | |
name: Create a Linux *.tar.gz bundle for x86 | |
if: github.repository_owner == 'zed-industries' | |
runs-on: | |
- self-hosted | |
- deploy | |
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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
clean: false | |
- name: Add Rust to the PATH | |
run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
- 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 | |
bundle-linux-arm: | |
timeout-minutes: 60 | |
name: Create a Linux *.tar.gz bundle for ARM | |
if: github.repository_owner == 'zed-industries' | |
runs-on: | |
- 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
with: | |
clean: false | |
- name: "Setup jq" | |
uses: dcarbone/install-jq-action@8867ddb4788346d7c22b72ea2e2ffe4d514c7bcb # 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@2e332a0b602c2fc65d2d3995941b1b29a5f554a0 # 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 |