From 8611d830d9bccea359b59e50c26ce21946329775 Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Fri, 12 Dec 2025 14:23:09 -0500 Subject: [PATCH] Remove Zed-specific CI and GitHub workflows These are tailored for Zed's release process, collab deployment, extension system, and community management. A fresh CI setup will be needed for the GPUI community edition. --- .github/ISSUE_TEMPLATE/10_bug_report.yml | 115 ---- .github/ISSUE_TEMPLATE/11_crash_report.yml | 43 -- .github/ISSUE_TEMPLATE/config.yml | 9 - .github/actionlint.yml | 45 -- .github/actions/build_docs/action.yml | 38 -- .github/actions/check_style/action.yml | 9 - .github/actions/run_tests/action.yml | 24 - .github/actions/run_tests_windows/action.yml | 26 - .github/cherry-pick-bot.yml | 2 - .github/pull_request_template.md | 5 - .github/workflows/after_release.yml | 119 ---- .github/workflows/bump_collab_staging.yml | 23 - .github/workflows/bump_patch_version.yml | 51 -- .github/workflows/cherry_pick.yml | 44 -- .../community_champion_auto_labeler.yml | 107 ---- .../community_close_stale_issues.yml | 29 - ...ommunity_update_all_top_ranking_issues.yml | 25 - ...unity_update_weekly_top_ranking_issues.yml | 25 - .github/workflows/compare_perf.yml | 80 --- .github/workflows/congrats.yml | 57 -- .github/workflows/danger.yml | 40 -- .github/workflows/deploy_cloudflare.yml | 61 -- .github/workflows/deploy_collab.yml | 148 ----- .github/workflows/extension_bump.yml | 147 ----- .github/workflows/extension_release.yml | 43 -- .github/workflows/extension_tests.yml | 133 ---- .../workflows/good_first_issue_notifier.yml | 36 -- .github/workflows/publish_extension_cli.yml | 41 -- .github/workflows/randomized_tests.yml | 36 -- .github/workflows/release.yml | 496 --------------- .github/workflows/release_nightly.yml | 510 ---------------- .github/workflows/run_agent_evals.yml | 67 -- .github/workflows/run_bundling.yml | 269 -------- .github/workflows/run_cron_unit_evals.yml | 77 --- .github/workflows/run_tests.yml | 578 ------------------ .github/workflows/run_unit_evals.yml | 69 --- ci/Dockerfile.namespace | 21 - 37 files changed, 3648 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/10_bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/11_crash_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/actionlint.yml delete mode 100644 .github/actions/build_docs/action.yml delete mode 100644 .github/actions/check_style/action.yml delete mode 100644 .github/actions/run_tests/action.yml delete mode 100644 .github/actions/run_tests_windows/action.yml delete mode 100644 .github/cherry-pick-bot.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/after_release.yml delete mode 100644 .github/workflows/bump_collab_staging.yml delete mode 100644 .github/workflows/bump_patch_version.yml delete mode 100644 .github/workflows/cherry_pick.yml delete mode 100644 .github/workflows/community_champion_auto_labeler.yml delete mode 100644 .github/workflows/community_close_stale_issues.yml delete mode 100644 .github/workflows/community_update_all_top_ranking_issues.yml delete mode 100644 .github/workflows/community_update_weekly_top_ranking_issues.yml delete mode 100644 .github/workflows/compare_perf.yml delete mode 100644 .github/workflows/congrats.yml delete mode 100644 .github/workflows/danger.yml delete mode 100644 .github/workflows/deploy_cloudflare.yml delete mode 100644 .github/workflows/deploy_collab.yml delete mode 100644 .github/workflows/extension_bump.yml delete mode 100644 .github/workflows/extension_release.yml delete mode 100644 .github/workflows/extension_tests.yml delete mode 100644 .github/workflows/good_first_issue_notifier.yml delete mode 100644 .github/workflows/publish_extension_cli.yml delete mode 100644 .github/workflows/randomized_tests.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/release_nightly.yml delete mode 100644 .github/workflows/run_agent_evals.yml delete mode 100644 .github/workflows/run_bundling.yml delete mode 100644 .github/workflows/run_cron_unit_evals.yml delete mode 100644 .github/workflows/run_tests.yml delete mode 100644 .github/workflows/run_unit_evals.yml delete mode 100644 ci/Dockerfile.namespace diff --git a/.github/ISSUE_TEMPLATE/10_bug_report.yml b/.github/ISSUE_TEMPLATE/10_bug_report.yml deleted file mode 100644 index cae10f02ec..0000000000 --- a/.github/ISSUE_TEMPLATE/10_bug_report.yml +++ /dev/null @@ -1,115 +0,0 @@ -name: Report a bug -description: Report a problem with Zed. -type: Bug -labels: "state:needs triage" -body: - - type: markdown - attributes: - value: | - Is this bug already reported? Upvote to get it noticed faster. [Here's the search](https://github.com/zed-industries/zed/issues). Upvote means giving it a :+1: reaction. - - Feature request? Please open in [discussions](https://github.com/zed-industries/zed/discussions/new/choose) instead. - - Just have a question or need support? Welcome to [Discord Support Forums](https://discord.com/invite/zedindustries). - - type: textarea - attributes: - label: Reproduction steps - description: A step-by-step description of how to reproduce the bug from a **clean Zed install**. The more context you provide, the easier it is to find and fix the problem fast. - placeholder: | - 1. Start Zed - 2. Click X - validations: - required: true - - type: textarea - attributes: - label: Current vs. Expected behavior - description: | - Current behavior (screenshots, videos, etc. are appreciated), vs. what you expected the behavior to be. - - placeholder: | - Current behavior: The icon is blue. Expected behavior: The icon should be red because this is what the setting is documented to do. - validations: - required: true - - type: textarea - id: environment - attributes: - label: Zed version and system specs - description: | - Open the command palette in Zed, then type “zed: copy system specs into clipboard”. - placeholder: | - Zed: v0.215.0 (Zed Nightly bfe141ea79aa4984028934067ba75c48d99136ae) - OS: macOS 15.1 - Memory: 36 GiB - Architecture: aarch64 - validations: - required: true - - type: textarea - attributes: - label: Attach Zed log file - description: | - Open the command palette in Zed, then type `zed: open log` to see the last 1000 lines. Or type `zed: reveal log in file manager` in the command palette to reveal the log file itself. - value: | -
Zed.log - - - ```log - - ``` - -
- validations: - required: false - - type: textarea - attributes: - label: Relevant Zed settings - description: | - Open the command palette in Zed, then type “zed: open settings file” and copy/paste any relevant (e.g., LSP-specific) settings. - value: | -
settings.json - - - ```json - - ``` - -
- validations: - required: false - - type: textarea - attributes: - label: Relevant Keymap - description: | - Open the command palette in Zed, then type “zed: open keymap file” and copy/paste the file's contents. - value: | -
keymap.json - - - ```json - - ``` - -
- validations: - required: false - - type: textarea - attributes: - label: (for AI issues) Model provider details - placeholder: | - - Provider: (Anthropic via ZedPro, Anthropic via API key, Copilot Chat, Mistral, OpenAI, etc.) - - Model Name: (Claude Sonnet 4.5, Gemini 3 Pro, GPT-5) - - Mode: (Agent Panel, Inline Assistant, Terminal Assistant or Text Threads) - - Other details (ACPs, MCPs, other settings, etc.): - validations: - required: false - - type: dropdown - attributes: - label: If you are using WSL on Windows, what flavor of Linux are you using? - multiple: false - options: - - Arch Linux - - Ubuntu - - Fedora - - Mint - - Pop!_OS - - NixOS - - Other diff --git a/.github/ISSUE_TEMPLATE/11_crash_report.yml b/.github/ISSUE_TEMPLATE/11_crash_report.yml deleted file mode 100644 index a019848e87..0000000000 --- a/.github/ISSUE_TEMPLATE/11_crash_report.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: Report a crash -description: Zed is crashing or freezing or hanging. -type: Crash -labels: "state:needs triage" -body: - - type: textarea - attributes: - label: Reproduction steps - description: A step-by-step description of how to reproduce the crash from a **clean Zed install**. The more context you provide, the easier it is to find and fix the problem fast. - placeholder: | - 1. Start Zed - 2. Perform an action - 3. Zed crashes - validations: - required: true - - type: textarea - attributes: - label: Zed version and system specs - description: | - Open the command palette in Zed, then type “zed: copy system specs into clipboard”. - placeholder: | - Zed: v0.215.0 (Zed Nightly bfe141ea79aa4984028934067ba75c48d99136ae) - OS: macOS 15.1 - Memory: 36 GiB - Architecture: aarch64 - validations: - required: true - - type: textarea - attributes: - label: Attach Zed log file - description: | - Open the command palette in Zed, then type `zed: open log` to see the last 1000 lines. Or type `zed: reveal log in file manager` in the command palette to reveal the log file itself. - value: | -
Zed.log - - - ```log - - ``` - -
- validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 9bf14ce72d..0000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,9 +0,0 @@ -# yaml-language-server: $schema=https://www.schemastore.org/github-issue-config.json -blank_issues_enabled: false -contact_links: - - name: Feature request - url: https://github.com/zed-industries/zed/discussions/new/choose - about: To request a feature, open a new discussion under one of the appropriate categories. - - name: Our Discord community - url: https://discord.com/invite/zedindustries - about: Join our Discord server for real-time discussion and user support. diff --git a/.github/actionlint.yml b/.github/actionlint.yml deleted file mode 100644 index 6d8e0107e9..0000000000 --- a/.github/actionlint.yml +++ /dev/null @@ -1,45 +0,0 @@ -# Configuration related to self-hosted runner. -self-hosted-runner: - # Labels of self-hosted runner in array of strings. - labels: - # GitHub-hosted Runners - - github-8vcpu-ubuntu-2404 - - github-16vcpu-ubuntu-2404 - - github-32vcpu-ubuntu-2404 - - github-8vcpu-ubuntu-2204 - - github-16vcpu-ubuntu-2204 - - github-32vcpu-ubuntu-2204 - - github-16vcpu-ubuntu-2204-arm - - windows-2025-16 - - windows-2025-32 - - windows-2025-64 - # Namespace Ubuntu 20.04 (Release builds) - - namespace-profile-16x32-ubuntu-2004 - - namespace-profile-32x64-ubuntu-2004 - - namespace-profile-16x32-ubuntu-2004-arm - - namespace-profile-32x64-ubuntu-2004-arm - # Namespace Ubuntu 22.04 (Everything else) - - namespace-profile-4x8-ubuntu-2204 - - namespace-profile-8x16-ubuntu-2204 - - namespace-profile-16x32-ubuntu-2204 - - namespace-profile-32x64-ubuntu-2204 - # Namespace Ubuntu 24.04 (like ubuntu-latest) - - namespace-profile-2x4-ubuntu-2404 - # Namespace Limited Preview - - namespace-profile-8x16-ubuntu-2004-arm-m4 - - namespace-profile-8x32-ubuntu-2004-arm-m4 - # Self Hosted Runners - - self-mini-macos - - self-32vcpu-windows-2022 - -# Disable shellcheck because it doesn't like powershell -# This should have been triggered with initial rollout of actionlint -# but https://github.com/zed-industries/zed/pull/36693 -# somehow caused actionlint to actually check those windows jobs -# where previously they were being skipped. Likely caused by an -# unknown bug in actionlint where parsing of `runs-on: [ ]` -# breaks something else. (yuck) -paths: - .github/workflows/{ci,release_nightly}.yml: - ignore: - - "shellcheck" diff --git a/.github/actions/build_docs/action.yml b/.github/actions/build_docs/action.yml deleted file mode 100644 index d2e62d5b22..0000000000 --- a/.github/actions/build_docs/action.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: "Build docs" -description: "Build the docs" - -runs: - using: "composite" - steps: - - name: Setup mdBook - uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 # v2 - with: - mdbook-version: "0.4.37" - - - name: Cache dependencies - uses: swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2 - with: - save-if: ${{ github.ref == 'refs/heads/main' }} - # cache-provider: "buildjet" - - - name: Install Linux dependencies - shell: bash -euxo pipefail {0} - run: ./script/linux - - - name: Check for broken links (in MD) - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2.4.1 - with: - args: --no-progress --exclude '^http' './docs/src/**/*' - fail: true - - - name: Build book - shell: bash -euxo pipefail {0} - run: | - mkdir -p target/deploy - mdbook build ./docs --dest-dir=../target/deploy/docs/ - - - name: Check for broken links (in HTML) - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2.4.1 - with: - args: --no-progress --exclude '^http' 'target/deploy/docs/' - fail: true diff --git a/.github/actions/check_style/action.yml b/.github/actions/check_style/action.yml deleted file mode 100644 index f8362bc636..0000000000 --- a/.github/actions/check_style/action.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: "Check formatting" -description: "Checks code formatting use cargo fmt" - -runs: - using: "composite" - steps: - - name: cargo fmt - shell: bash -euxo pipefail {0} - run: cargo fmt --all -- --check diff --git a/.github/actions/run_tests/action.yml b/.github/actions/run_tests/action.yml deleted file mode 100644 index a071aba3a8..0000000000 --- a/.github/actions/run_tests/action.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: "Run tests" -description: "Runs the tests" - -runs: - using: "composite" - steps: - - name: Install nextest - uses: taiki-e/install-action@nextest - - - name: Install Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version: "18" - - - name: Limit target directory size - env: - MAX_SIZE: ${{ runner.os == 'macOS' && 300 || 100 }} - shell: bash -euxo pipefail {0} - # Use the variable in the run command - run: script/clear-target-dir-if-larger-than ${{ env.MAX_SIZE }} - - - name: Run tests - shell: bash -euxo pipefail {0} - run: cargo nextest run --workspace --no-fail-fast --failure-output immediate-final diff --git a/.github/actions/run_tests_windows/action.yml b/.github/actions/run_tests_windows/action.yml deleted file mode 100644 index 307b73f363..0000000000 --- a/.github/actions/run_tests_windows/action.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: "Run tests on Windows" -description: "Runs the tests on Windows" - -inputs: - working-directory: - description: "The working directory" - required: true - default: "." - -runs: - using: "composite" - steps: - - name: Install test runner - working-directory: ${{ inputs.working-directory }} - uses: taiki-e/install-action@nextest - - - name: Install Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version: "18" - - - name: Run tests - shell: powershell - working-directory: ${{ inputs.working-directory }} - run: | - cargo nextest run --workspace --no-fail-fast --failure-output immediate-final diff --git a/.github/cherry-pick-bot.yml b/.github/cherry-pick-bot.yml deleted file mode 100644 index 1f62315d79..0000000000 --- a/.github/cherry-pick-bot.yml +++ /dev/null @@ -1,2 +0,0 @@ -enabled: true -preservePullRequestTitle: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index e107c14470..0000000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,5 +0,0 @@ -Closes #ISSUE - -Release Notes: - -- N/A *or* Added/Fixed/Improved ... diff --git a/.github/workflows/after_release.yml b/.github/workflows/after_release.yml deleted file mode 100644 index 21b9a8fe0e..0000000000 --- a/.github/workflows/after_release.yml +++ /dev/null @@ -1,119 +0,0 @@ -# Generated from xtask::workflows::after_release -# Rebuild with `cargo xtask workflows`. -name: after_release -on: - release: - types: - - published - workflow_dispatch: - inputs: - tag_name: - description: tag_name - required: true - type: string - prerelease: - description: prerelease - required: true - type: boolean - body: - description: body - type: string - default: '' -jobs: - rebuild_releases_page: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: after_release::rebuild_releases_page::refresh_cloud_releases - run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name || inputs.tag_name }} - shell: bash -euxo pipefail {0} - - name: after_release::rebuild_releases_page::redeploy_zed_dev - run: npm exec --yes -- vercel@37 --token="$VERCEL_TOKEN" --scope zed-industries redeploy https://zed.dev - shell: bash -euxo pipefail {0} - env: - VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} - post_to_discord: - needs: - - rebuild_releases_page - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - id: get-release-url - name: after_release::post_to_discord::get_release_url - run: | - if [ "${{ github.event.release.prerelease || inputs.prerelease }}" == "true" ]; then - URL="https://zed.dev/releases/preview" - else - URL="https://zed.dev/releases/stable" - fi - - echo "URL=$URL" >> "$GITHUB_OUTPUT" - shell: bash -euxo pipefail {0} - - id: get-content - name: after_release::post_to_discord::get_content - uses: 2428392/gh-truncate-string-action@b3ff790d21cf42af3ca7579146eedb93c8fb0757 - with: - stringToTruncate: | - 📣 Zed [${{ github.event.release.tag_name || inputs.tag_name }}](<${{ steps.get-release-url.outputs.URL }}>) was just released! - - ${{ github.event.release.body || inputs.body }} - maxLength: 2000 - truncationSymbol: '...' - - name: after_release::post_to_discord::discord_webhook_action - uses: tsickert/discord-webhook@c840d45a03a323fbc3f7507ac7769dbd91bfb164 - with: - webhook-url: ${{ secrets.DISCORD_WEBHOOK_RELEASE_NOTES }} - content: ${{ steps.get-content.outputs.string }} - publish_winget: - runs-on: self-32vcpu-windows-2022 - steps: - - id: set-package-name - name: after_release::publish_winget::set_package_name - run: | - if ("${{ github.event.release.prerelease || inputs.prerelease }}" -eq "true") { - $PACKAGE_NAME = "ZedIndustries.Zed.Preview" - } else { - $PACKAGE_NAME = "ZedIndustries.Zed" - } - - echo "PACKAGE_NAME=$PACKAGE_NAME" >> $env:GITHUB_OUTPUT - shell: pwsh - - name: after_release::publish_winget::winget_releaser - uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f - with: - identifier: ${{ steps.set-package-name.outputs.PACKAGE_NAME }} - release-tag: ${{ github.event.release.tag_name || inputs.tag_name }} - max-versions-to-keep: 5 - token: ${{ secrets.WINGET_TOKEN }} - create_sentry_release: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: release::create_sentry_release - uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c - with: - environment: production - env: - SENTRY_ORG: zed-dev - SENTRY_PROJECT: zed - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - notify_on_failure: - needs: - - rebuild_releases_page - - post_to_discord - - publish_winget - - create_sentry_release - if: failure() - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: release::notify_on_failure::notify_slack - run: |- - curl -X POST -H 'Content-type: application/json'\ - --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK" - shell: bash -euxo pipefail {0} - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }} diff --git a/.github/workflows/bump_collab_staging.yml b/.github/workflows/bump_collab_staging.yml deleted file mode 100644 index d400905b4d..0000000000 --- a/.github/workflows/bump_collab_staging.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Bump collab-staging Tag - -on: - schedule: - # Fire every day at 16:00 UTC (At the start of the US workday) - - cron: "0 16 * * *" - -jobs: - update-collab-staging-tag: - if: github.repository_owner == 'zed-industries' - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - fetch-depth: 0 - - - name: Update collab-staging tag - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git tag -f collab-staging - git push origin collab-staging --force diff --git a/.github/workflows/bump_patch_version.yml b/.github/workflows/bump_patch_version.yml deleted file mode 100644 index e1ae890043..0000000000 --- a/.github/workflows/bump_patch_version.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: bump_patch_version - -on: - workflow_dispatch: - inputs: - branch: - description: "Branch name to run on" - required: true - -concurrency: - # Allow only one workflow per any non-`main` branch. - group: ${{ github.workflow }}-${{ inputs.branch }} - cancel-in-progress: true - -jobs: - bump_patch_version: - if: github.repository_owner == 'zed-industries' - runs-on: - - namespace-profile-16x32-ubuntu-2204 - steps: - - name: Checkout code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - ref: ${{ github.event.inputs.branch }} - ssh-key: ${{ secrets.ZED_BOT_DEPLOY_KEY }} - - - name: Bump Patch Version - run: | - set -eux - - channel="$(cat crates/zed/RELEASE_CHANNEL)" - - tag_suffix="" - case $channel in - stable) - ;; - preview) - tag_suffix="-pre" - ;; - *) - echo "this must be run on either of stable|preview release branches" >&2 - exit 1 - ;; - esac - which cargo-set-version > /dev/null || cargo install cargo-edit -f --no-default-features --features "set-version" - output="$(cargo set-version -p zed --bump patch 2>&1 | sed 's/.* //')" - export GIT_COMMITTER_NAME="Zed Bot" - export GIT_COMMITTER_EMAIL="hi@zed.dev" - git commit -am "Bump to $output for @$GITHUB_ACTOR" --author "Zed Bot " - git tag "v${output}${tag_suffix}" - git push origin HEAD "v${output}${tag_suffix}" diff --git a/.github/workflows/cherry_pick.yml b/.github/workflows/cherry_pick.yml deleted file mode 100644 index bc01aae17e..0000000000 --- a/.github/workflows/cherry_pick.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Generated from xtask::workflows::cherry_pick -# Rebuild with `cargo xtask workflows`. -name: cherry_pick -run-name: 'cherry_pick to ${{ inputs.channel }} #${{ inputs.pr_number }}' -on: - workflow_dispatch: - inputs: - commit: - description: commit - required: true - type: string - branch: - description: branch - required: true - type: string - channel: - description: channel - required: true - type: string - pr_number: - description: pr_number - required: true - type: string -jobs: - run_cherry_pick: - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - id: get-app-token - name: cherry_pick::run_cherry_pick::authenticate_as_zippy - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 - with: - app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} - private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} - - name: cherry_pick::run_cherry_pick::cherry_pick - run: ./script/cherry-pick ${{ inputs.branch }} ${{ inputs.commit }} ${{ inputs.channel }} - shell: bash -euxo pipefail {0} - env: - GIT_COMMITTER_NAME: Zed Zippy - GIT_COMMITTER_EMAIL: hi@zed.dev - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} diff --git a/.github/workflows/community_champion_auto_labeler.yml b/.github/workflows/community_champion_auto_labeler.yml deleted file mode 100644 index 93f1d56023..0000000000 --- a/.github/workflows/community_champion_auto_labeler.yml +++ /dev/null @@ -1,107 +0,0 @@ -name: Community Champion Auto Labeler - -on: - issues: - types: [opened] - pull_request_target: - types: [opened] - -jobs: - label_community_champion: - if: github.repository_owner == 'zed-industries' - runs-on: ubuntu-latest - steps: - - name: Check if author is a community champion and apply label - uses: actions/github-script@v7 - env: - COMMUNITY_CHAMPIONS: | - 0x2CA - 5brian - 5herlocked - abdelq - afgomez - AidanV - akbxr - AlvaroParker - amtoaer - artemevsevev - bajrangCoder - bcomnes - Be-ing - blopker - bnjjj - bobbymannino - CharlesChen0823 - chbk - cppcoffee - davewa - ddoemonn - djsauble - errmayank - fantacell - findrakecil - FloppyDisco - gko - huacnlee - imumesh18 - jacobtread - jansol - jeffreyguenther - jenslys - jongretar - lemorage - lnay - marcocondrache - marius851000 - mikebronner - ognevny - playdohface - RemcoSmitsDev - romaninsh - Simek - someone13574 - sourcefrog - suxiaoshao - Takk8IS - thedadams - tidely - timvermeulen - valentinegb - versecafe - vitallium - warrenjokinen - WhySoBad - ya7010 - Zertsov - with: - script: | - const communityChampions = process.env.COMMUNITY_CHAMPIONS - .split('\n') - .map(handle => handle.trim().toLowerCase()) - .filter(handle => handle.length > 0); - - let author; - if (context.eventName === 'issues') { - author = context.payload.issue.user.login; - } else if (context.eventName === 'pull_request_target') { - author = context.payload.pull_request.user.login; - } - - if (!author || !communityChampions.includes(author.toLowerCase())) { - return; - } - - const issueNumber = context.payload.issue?.number || context.payload.pull_request?.number; - - try { - await github.rest.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: issueNumber, - labels: ['community champion'] - }); - - console.log(`Applied 'community champion' label to #${issueNumber} by ${author}`); - } catch (error) { - console.error(`Failed to apply label: ${error.message}`); - } diff --git a/.github/workflows/community_close_stale_issues.yml b/.github/workflows/community_close_stale_issues.yml deleted file mode 100644 index 14c1a0a083..0000000000 --- a/.github/workflows/community_close_stale_issues.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: "Close Stale Issues" -on: - schedule: - - cron: "0 8 31 DEC *" - workflow_dispatch: - -jobs: - stale: - if: github.repository_owner == 'zed-industries' - runs-on: ubuntu-latest - steps: - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: > - Hi there! 👋 - - We're working to clean up our issue tracker by closing older bugs that might not be relevant anymore. If you are able to reproduce this issue in the latest version of Zed, please let us know by commenting on this issue, and it will be kept open. If you can't reproduce it, feel free to close the issue yourself. Otherwise, it will close automatically in 14 days. - - Thanks for your help! - close-issue-message: "This issue was closed due to inactivity. If you're still experiencing this problem, please open a new issue with a link to this issue." - days-before-stale: 60 - days-before-close: 14 - only-issue-types: "Bug,Crash" - operations-per-run: 1000 - ascending: true - enable-statistics: true - stale-issue-label: "stale" - exempt-issue-labels: "never stale" diff --git a/.github/workflows/community_update_all_top_ranking_issues.yml b/.github/workflows/community_update_all_top_ranking_issues.yml deleted file mode 100644 index 66b1873b95..0000000000 --- a/.github/workflows/community_update_all_top_ranking_issues.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Update All Top Ranking Issues - -on: - schedule: - - cron: "0 */12 * * *" - workflow_dispatch: - -jobs: - update_top_ranking_issues: - runs-on: ubuntu-latest - if: github.repository == 'zed-industries/zed' - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Set up uv - uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3 - with: - version: "latest" - enable-cache: true - cache-dependency-glob: "script/update_top_ranking_issues/pyproject.toml" - - name: Install Python 3.13 - run: uv python install 3.13 - - name: Install dependencies - run: uv sync --project script/update_top_ranking_issues -p 3.13 - - name: Run script - run: uv run --project script/update_top_ranking_issues script/update_top_ranking_issues/main.py --github-token ${{ secrets.GITHUB_TOKEN }} --issue-reference-number 5393 diff --git a/.github/workflows/community_update_weekly_top_ranking_issues.yml b/.github/workflows/community_update_weekly_top_ranking_issues.yml deleted file mode 100644 index e1514da716..0000000000 --- a/.github/workflows/community_update_weekly_top_ranking_issues.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Update Weekly Top Ranking Issues - -on: - schedule: - - cron: "0 15 * * *" - workflow_dispatch: - -jobs: - update_top_ranking_issues: - runs-on: ubuntu-latest - if: github.repository == 'zed-industries/zed' - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Set up uv - uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3 - with: - version: "latest" - enable-cache: true - cache-dependency-glob: "script/update_top_ranking_issues/pyproject.toml" - - name: Install Python 3.13 - run: uv python install 3.13 - - name: Install dependencies - run: uv sync --project script/update_top_ranking_issues -p 3.13 - - name: Run script - run: uv run --project script/update_top_ranking_issues script/update_top_ranking_issues/main.py --github-token ${{ secrets.GITHUB_TOKEN }} --issue-reference-number 6952 --query-day-interval 7 diff --git a/.github/workflows/compare_perf.yml b/.github/workflows/compare_perf.yml deleted file mode 100644 index 48fc850f8f..0000000000 --- a/.github/workflows/compare_perf.yml +++ /dev/null @@ -1,80 +0,0 @@ -# Generated from xtask::workflows::compare_perf -# Rebuild with `cargo xtask workflows`. -name: compare_perf -on: - workflow_dispatch: - inputs: - head: - description: head - required: true - type: string - base: - description: base - required: true - type: string - crate_name: - description: crate_name - type: string - default: '' -jobs: - run_perf: - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: compare_perf::run_perf::install_hyperfine - uses: taiki-e/install-action@hyperfine - - name: steps::git_checkout - run: git fetch origin ${{ inputs.base }} && git checkout ${{ inputs.base }} - shell: bash -euxo pipefail {0} - - name: compare_perf::run_perf::cargo_perf_test - run: |2- - - if [ -n "${{ inputs.crate_name }}" ]; then - cargo perf-test -p ${{ inputs.crate_name }} -- --json=${{ inputs.base }}; - else - cargo perf-test -p vim -- --json=${{ inputs.base }}; - fi - shell: bash -euxo pipefail {0} - - name: steps::git_checkout - run: git fetch origin ${{ inputs.head }} && git checkout ${{ inputs.head }} - shell: bash -euxo pipefail {0} - - name: compare_perf::run_perf::cargo_perf_test - run: |2- - - if [ -n "${{ inputs.crate_name }}" ]; then - cargo perf-test -p ${{ inputs.crate_name }} -- --json=${{ inputs.head }}; - else - cargo perf-test -p vim -- --json=${{ inputs.head }}; - fi - shell: bash -euxo pipefail {0} - - name: compare_perf::run_perf::compare_runs - run: cargo perf-compare --save=results.md ${{ inputs.base }} ${{ inputs.head }} - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact results.md' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: results.md - path: results.md - if-no-files-found: error - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} diff --git a/.github/workflows/congrats.yml b/.github/workflows/congrats.yml deleted file mode 100644 index efd9812d80..0000000000 --- a/.github/workflows/congrats.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Congratsbot - -on: - push: - branches: [main] - -jobs: - check-author: - if: ${{ github.repository_owner == 'zed-industries' }} - runs-on: ubuntu-latest - outputs: - should_congratulate: ${{ steps.check.outputs.should_congratulate }} - steps: - - name: Get PR info and check if author is external - id: check - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.CONGRATSBOT_GITHUB_TOKEN }} - script: | - const { data: prs } = await github.rest.repos.listPullRequestsAssociatedWithCommit({ - owner: context.repo.owner, - repo: context.repo.repo, - commit_sha: context.sha - }); - - if (prs.length === 0) { - core.setOutput('should_congratulate', 'false'); - return; - } - - const mergedPR = prs.find(pr => pr.merged_at !== null) || prs[0]; - const prAuthor = mergedPR.user.login; - - try { - await github.rest.teams.getMembershipForUserInOrg({ - org: 'zed-industries', - team_slug: 'staff', - username: prAuthor - }); - core.setOutput('should_congratulate', 'false'); - } catch (error) { - if (error.status === 404) { - core.setOutput('should_congratulate', 'true'); - } else { - console.error(`Error checking team membership: ${error.message}`); - core.setOutput('should_congratulate', 'false'); - } - } - - congrats: - needs: check-author - if: needs.check-author.outputs.should_congratulate == 'true' - uses: withastro/automation/.github/workflows/congratsbot.yml@main - with: - EMOJIS: 🎉,🎊,🧑‍🚀,🥳,🙌,🚀,🦀,🔥,🚢 - secrets: - DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }} diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml deleted file mode 100644 index 9d6054eb3e..0000000000 --- a/.github/workflows/danger.yml +++ /dev/null @@ -1,40 +0,0 @@ -# Generated from xtask::workflows::danger -# Rebuild with `cargo xtask workflows`. -name: danger -on: - pull_request: - types: - - opened - - synchronize - - reopened - - edited - branches: - - main -jobs: - danger: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_pnpm - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 - with: - version: '9' - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - cache: pnpm - cache-dependency-path: script/danger/pnpm-lock.yaml - - name: danger::danger_job::install_deps - run: pnpm install --dir script/danger - shell: bash -euxo pipefail {0} - - name: danger::danger_job::run - run: pnpm run --dir script/danger danger ci - shell: bash -euxo pipefail {0} - env: - GITHUB_TOKEN: not_a_real_token - DANGER_GITHUB_API_BASE_URL: https://danger-proxy.fly.dev/github diff --git a/.github/workflows/deploy_cloudflare.yml b/.github/workflows/deploy_cloudflare.yml deleted file mode 100644 index 2650cce140..0000000000 --- a/.github/workflows/deploy_cloudflare.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Deploy Docs - -on: - push: - branches: - - main - -jobs: - deploy-docs: - name: Deploy Docs - if: github.repository_owner == 'zed-industries' - runs-on: namespace-profile-16x32-ubuntu-2204 - - steps: - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - - - name: Set up default .cargo/config.toml - run: cp ./.cargo/collab-config.toml ./.cargo/config.toml - - - name: Build docs - uses: ./.github/actions/build_docs - env: - DOCS_AMPLITUDE_API_KEY: ${{ secrets.DOCS_AMPLITUDE_API_KEY }} - - - name: Deploy Docs - uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy target/deploy --project-name=docs - - - name: Deploy Install - uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: r2 object put -f script/install.sh zed-open-source-website-assets/install.sh - - - name: Deploy Docs Workers - uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: deploy .cloudflare/docs-proxy/src/worker.js - - - name: Deploy Install Workers - uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: deploy .cloudflare/docs-proxy/src/worker.js - - - name: Preserve Wrangler logs - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 - if: always() - with: - name: wrangler_logs - path: /home/runner/.config/.wrangler/logs/ diff --git a/.github/workflows/deploy_collab.yml b/.github/workflows/deploy_collab.yml deleted file mode 100644 index ce0c0eac40..0000000000 --- a/.github/workflows/deploy_collab.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Publish Collab Server Image - -on: - push: - tags: - - collab-production - - collab-staging - -env: - DOCKER_BUILDKIT: 1 - -jobs: - style: - name: Check formatting and Clippy lints - if: github.repository_owner == 'zed-industries' - runs-on: - - self-hosted - - macOS - steps: - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - fetch-depth: 0 - - - name: Run style checks - uses: ./.github/actions/check_style - - - name: Run clippy - run: ./script/clippy - - tests: - name: Run tests - runs-on: - - self-hosted - - macOS - needs: style - steps: - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - fetch-depth: 0 - - - name: Install cargo nextest - uses: taiki-e/install-action@nextest - - - name: Limit target directory size - shell: bash -euxo pipefail {0} - run: script/clear-target-dir-if-larger-than 300 - - - name: Run tests - shell: bash -euxo pipefail {0} - run: cargo nextest run --package collab --no-fail-fast - - publish: - name: Publish collab server image - needs: - - style - - tests - runs-on: - - namespace-profile-16x32-ubuntu-2204 - steps: - - name: Install doctl - uses: digitalocean/action-doctl@v2 - with: - token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} - - - name: Sign into DigitalOcean docker registry - run: doctl registry login - - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - - - name: Build docker image - run: | - docker build -f Dockerfile-collab \ - --build-arg "GITHUB_SHA=$GITHUB_SHA" \ - --tag "registry.digitalocean.com/zed/collab:$GITHUB_SHA" \ - . - - - name: Publish docker image - run: docker push "registry.digitalocean.com/zed/collab:${GITHUB_SHA}" - - - name: Prune Docker system - run: docker system prune --filter 'until=72h' -f - - deploy: - name: Deploy new server image - needs: - - publish - runs-on: - - namespace-profile-16x32-ubuntu-2204 - - steps: - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - - - name: Install doctl - uses: digitalocean/action-doctl@v2 - with: - token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} - - - name: Sign into Kubernetes - run: doctl kubernetes cluster kubeconfig save --expiry-seconds 600 ${{ secrets.CLUSTER_NAME }} - - - name: Start rollout - run: | - set -eu - if [[ $GITHUB_REF_NAME = "collab-production" ]]; then - export ZED_KUBE_NAMESPACE=production - export ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT=10 - export ZED_API_LOAD_BALANCER_SIZE_UNIT=2 - elif [[ $GITHUB_REF_NAME = "collab-staging" ]]; then - export ZED_KUBE_NAMESPACE=staging - export ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT=1 - export ZED_API_LOAD_BALANCER_SIZE_UNIT=1 - else - echo "cowardly refusing to deploy from an unknown branch" - exit 1 - fi - - echo "Deploying collab:$GITHUB_SHA to $ZED_KUBE_NAMESPACE" - - source script/lib/deploy-helpers.sh - export_vars_for_environment $ZED_KUBE_NAMESPACE - - ZED_DO_CERTIFICATE_ID="$(doctl compute certificate list --format ID --no-header)" - export ZED_DO_CERTIFICATE_ID - export ZED_IMAGE_ID="registry.digitalocean.com/zed/collab:${GITHUB_SHA}" - - export ZED_SERVICE_NAME=collab - export ZED_LOAD_BALANCER_SIZE_UNIT=$ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT - export DATABASE_MAX_CONNECTIONS=850 - envsubst < crates/collab/k8s/collab.template.yml | kubectl apply -f - - kubectl -n "$ZED_KUBE_NAMESPACE" rollout status deployment/$ZED_SERVICE_NAME --watch - echo "deployed ${ZED_SERVICE_NAME} to ${ZED_KUBE_NAMESPACE}" - - export ZED_SERVICE_NAME=api - export ZED_LOAD_BALANCER_SIZE_UNIT=$ZED_API_LOAD_BALANCER_SIZE_UNIT - export DATABASE_MAX_CONNECTIONS=60 - envsubst < crates/collab/k8s/collab.template.yml | kubectl apply -f - - kubectl -n "$ZED_KUBE_NAMESPACE" rollout status deployment/$ZED_SERVICE_NAME --watch - echo "deployed ${ZED_SERVICE_NAME} to ${ZED_KUBE_NAMESPACE}" diff --git a/.github/workflows/extension_bump.yml b/.github/workflows/extension_bump.yml deleted file mode 100644 index c7582378f1..0000000000 --- a/.github/workflows/extension_bump.yml +++ /dev/null @@ -1,147 +0,0 @@ -# Generated from xtask::workflows::extension_bump -# Rebuild with `cargo xtask workflows`. -name: extension_bump -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' - CARGO_INCREMENTAL: '0' - ZED_EXTENSION_CLI_SHA: 7cfce605704d41ca247e3f84804bf323f6c6caaf -on: - workflow_call: - inputs: - bump-type: - description: bump-type - type: string - default: patch - force-bump: - description: force-bump - required: true - type: boolean - secrets: - app-id: - description: The app ID used to create the PR - required: true - app-secret: - description: The app secret for the corresponding app ID - required: true -jobs: - check_bump_needed: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: 0 - - id: compare-versions-check - name: extension_bump::compare_versions - run: | - CURRENT_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)" - PR_PARENT_SHA="${{ github.event.pull_request.head.sha }}" - - if [[ -n "$PR_PARENT_SHA" ]]; then - git checkout "$PR_PARENT_SHA" - elif BRANCH_PARENT_SHA="$(git merge-base origin/main origin/zed-zippy-autobump)"; then - git checkout "$BRANCH_PARENT_SHA" - else - git checkout "$(git log -1 --format=%H)"~1 - fi - - PARENT_COMMIT_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)" - - [[ "$CURRENT_VERSION" == "$PARENT_COMMIT_VERSION" ]] && \ - echo "needs_bump=true" >> "$GITHUB_OUTPUT" || \ - echo "needs_bump=false" >> "$GITHUB_OUTPUT" - - echo "current_version=${CURRENT_VERSION}" >> "$GITHUB_OUTPUT" - shell: bash -euxo pipefail {0} - outputs: - needs_bump: ${{ steps.compare-versions-check.outputs.needs_bump }} - current_version: ${{ steps.compare-versions-check.outputs.current_version }} - timeout-minutes: 1 - bump_extension_version: - needs: - - check_bump_needed - if: |- - (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && - (inputs.force-bump == 'true' || needs.check_bump_needed.outputs.needs_bump == 'true') - runs-on: namespace-profile-8x16-ubuntu-2204 - steps: - - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.app-id }} - private-key: ${{ secrets.app-secret }} - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: extension_bump::install_bump_2_version - run: pip install bump2version - shell: bash -euxo pipefail {0} - - id: bump-version - name: extension_bump::bump_version - run: | - OLD_VERSION="${{ needs.check_bump_needed.outputs.current_version }}" - - BUMP_FILES=("extension.toml") - if [[ -f "Cargo.toml" ]]; then - BUMP_FILES+=("Cargo.toml") - fi - - bump2version --verbose --current-version "$OLD_VERSION" --no-configured-files ${{ inputs.bump-type }} "${BUMP_FILES[@]}" - - if [[ -f "Cargo.toml" ]]; then - cargo update --workspace - fi - - NEW_VERSION="$(sed -n 's/version = \"\(.*\)\"/\1/p' < extension.toml)" - - echo "new_version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" - shell: bash -euxo pipefail {0} - - name: extension_bump::create_pull_request - uses: peter-evans/create-pull-request@v7 - with: - title: Bump version to ${{ steps.bump-version.outputs.new_version }} - body: This PR bumps the version of this extension to v${{ steps.bump-version.outputs.new_version }} - commit-message: Bump version to v${{ steps.bump-version.outputs.new_version }} - branch: zed-zippy-autobump - committer: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com> - base: main - delete-branch: true - token: ${{ steps.generate-token.outputs.token }} - sign-commits: true - timeout-minutes: 1 - create_version_label: - needs: - - check_bump_needed - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.check_bump_needed.outputs.needs_bump == 'false' - runs-on: namespace-profile-8x16-ubuntu-2204 - steps: - - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.app-id }} - private-key: ${{ secrets.app-secret }} - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: extension_bump::create_version_tag - uses: actions/github-script@v7 - with: - script: |- - github.rest.git.createRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: 'refs/tags/v${{ needs.check_bump_needed.outputs.current_version }}', - sha: context.sha - }) - github-token: ${{ steps.generate-token.outputs.token }} - timeout-minutes: 1 -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/extension_release.yml b/.github/workflows/extension_release.yml deleted file mode 100644 index 5212a79c3e..0000000000 --- a/.github/workflows/extension_release.yml +++ /dev/null @@ -1,43 +0,0 @@ -# Generated from xtask::workflows::extension_release -# Rebuild with `cargo xtask workflows`. -name: extension_release -on: - workflow_call: - secrets: - app-id: - description: The app ID used to create the PR - required: true - app-secret: - description: The app secret for the corresponding app ID - required: true -jobs: - create_release: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-8x16-ubuntu-2204 - steps: - - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 - with: - app-id: ${{ secrets.app-id }} - private-key: ${{ secrets.app-secret }} - owner: zed-industries - repositories: extensions - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - id: get-extension-id - name: extension_release::get_extension_id - run: | - EXTENSION_ID="$(sed -n 's/id = \"\(.*\)\"/\1/p' < extension.toml)" - - echo "extension_id=${EXTENSION_ID}" >> "$GITHUB_OUTPUT" - shell: bash -euxo pipefail {0} - - name: extension_release::release_action - uses: huacnlee/zed-extension-action@v2 - with: - extension-name: ${{ steps.get-extension-id.outputs.extension_id }} - push-to: zed-industries/extensions - env: - COMMITTER_TOKEN: ${{ steps.generate-token.outputs.token }} diff --git a/.github/workflows/extension_tests.yml b/.github/workflows/extension_tests.yml deleted file mode 100644 index 9f0917e388..0000000000 --- a/.github/workflows/extension_tests.yml +++ /dev/null @@ -1,133 +0,0 @@ -# Generated from xtask::workflows::extension_tests -# Rebuild with `cargo xtask workflows`. -name: extension_tests -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' - CARGO_INCREMENTAL: '0' - ZED_EXTENSION_CLI_SHA: 7cfce605704d41ca247e3f84804bf323f6c6caaf -on: - workflow_call: {} -jobs: - orchestrate: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }} - - id: filter - name: filter - run: | - if [ -z "$GITHUB_BASE_REF" ]; then - echo "Not in a PR context (i.e., push to main/stable/preview)" - COMPARE_REV="$(git rev-parse HEAD~1)" - else - echo "In a PR context comparing to pull_request.base.ref" - git fetch origin "$GITHUB_BASE_REF" --depth=350 - COMPARE_REV="$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD)" - fi - CHANGED_FILES="$(git diff --name-only "$COMPARE_REV" ${{ github.sha }})" - - check_pattern() { - local output_name="$1" - local pattern="$2" - local grep_arg="$3" - - echo "$CHANGED_FILES" | grep "$grep_arg" "$pattern" && \ - echo "${output_name}=true" >> "$GITHUB_OUTPUT" || \ - echo "${output_name}=false" >> "$GITHUB_OUTPUT" - } - - check_pattern "check_rust" '^(Cargo.lock|Cargo.toml|.*\.rs)$' -qP - check_pattern "check_extension" '^.*\.scm$' -qP - shell: bash -euxo pipefail {0} - outputs: - check_rust: ${{ steps.filter.outputs.check_rust }} - check_extension: ${{ steps.filter.outputs.check_extension }} - check_rust: - needs: - - orchestrate - if: needs.orchestrate.outputs.check_rust == 'true' - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::cargo_fmt - run: cargo fmt --all -- --check - shell: bash -euxo pipefail {0} - - name: extension_tests::run_clippy - run: cargo clippy --release --all-targets --all-features -- --deny warnings - shell: bash -euxo pipefail {0} - - name: steps::cargo_install_nextest - uses: taiki-e/install-action@nextest - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: bash -euxo pipefail {0} - env: - NEXTEST_NO_TESTS: warn - timeout-minutes: 3 - check_extension: - needs: - - orchestrate - if: needs.orchestrate.outputs.check_extension == 'true' - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - id: cache-zed-extension-cli - name: extension_tests::cache_zed_extension_cli - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 - with: - path: zed-extension - key: zed-extension-${{ env.ZED_EXTENSION_CLI_SHA }} - - name: extension_tests::download_zed_extension_cli - if: steps.cache-zed-extension-cli.outputs.cache-hit != 'true' - run: | - wget --quiet "https://zed-extension-cli.nyc3.digitaloceanspaces.com/$ZED_EXTENSION_CLI_SHA/x86_64-unknown-linux-gnu/zed-extension" - chmod +x zed-extension - shell: bash -euxo pipefail {0} - - name: extension_tests::check - run: | - mkdir -p /tmp/ext-scratch - mkdir -p /tmp/ext-output - ./zed-extension --source-dir . --scratch-dir /tmp/ext-scratch --output-dir /tmp/ext-output - shell: bash -euxo pipefail {0} - timeout-minutes: 2 - tests_pass: - needs: - - orchestrate - - check_rust - - check_extension - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always() - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: run_tests::tests_pass - run: | - set +x - EXIT_CODE=0 - - check_result() { - echo "* $1: $2" - if [[ "$2" != "skipped" && "$2" != "success" ]]; then EXIT_CODE=1; fi - } - - check_result "orchestrate" "${{ needs.orchestrate.result }}" - check_result "check_rust" "${{ needs.check_rust.result }}" - check_result "check_extension" "${{ needs.check_extension.result }}" - - exit $EXIT_CODE - shell: bash -euxo pipefail {0} -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/good_first_issue_notifier.yml b/.github/workflows/good_first_issue_notifier.yml deleted file mode 100644 index 1db992502b..0000000000 --- a/.github/workflows/good_first_issue_notifier.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Good First Issue Notifier - -on: - issues: - types: [labeled] - -jobs: - handle-good-first-issue: - if: github.event.label.name == 'good first issue' && github.repository_owner == 'zed-industries' - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - - name: Prepare Discord message - id: prepare-message - env: - ISSUE_TITLE: ${{ github.event.issue.title }} - ISSUE_NUMBER: ${{ github.event.issue.number }} - ISSUE_URL: ${{ github.event.issue.html_url }} - ISSUE_AUTHOR: ${{ github.event.issue.user.login }} - run: | - MESSAGE="[${ISSUE_TITLE} (#${ISSUE_NUMBER})](<${ISSUE_URL}>)" - - { - echo "message<> "$GITHUB_OUTPUT" - - - name: Discord Webhook Action - uses: tsickert/discord-webhook@c840d45a03a323fbc3f7507ac7769dbd91bfb164 # v5.3.0 - with: - webhook-url: ${{ secrets.DISCORD_WEBHOOK_GOOD_FIRST_ISSUE }} - content: ${{ steps.prepare-message.outputs.message }} diff --git a/.github/workflows/publish_extension_cli.yml b/.github/workflows/publish_extension_cli.yml deleted file mode 100644 index 2daabb0de4..0000000000 --- a/.github/workflows/publish_extension_cli.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Publish zed-extension CLI - -on: - push: - tags: - - extension-cli - -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: 0 - -jobs: - publish: - name: Publish zed-extension CLI - if: github.repository_owner == 'zed-industries' - runs-on: - - ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - - - name: Cache dependencies - uses: swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2 - with: - save-if: ${{ github.ref == 'refs/heads/main' }} - cache-provider: "github" - - - name: Configure linux - shell: bash -euxo pipefail {0} - run: script/linux - - - name: Build extension CLI - run: cargo build --release --package extension_cli - - - name: Upload binary - env: - DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }} - DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }} - run: script/upload-extension-cli ${{ github.sha }} diff --git a/.github/workflows/randomized_tests.yml b/.github/workflows/randomized_tests.yml deleted file mode 100644 index de96c3df78..0000000000 --- a/.github/workflows/randomized_tests.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Randomized Tests - -concurrency: randomized-tests - -on: - push: - branches: - - randomized-tests-runner - # schedule: - # - cron: '0 * * * *' - -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: 0 - RUST_BACKTRACE: 1 - ZED_SERVER_URL: https://zed.dev - -jobs: - tests: - name: Run randomized tests - if: github.repository_owner == 'zed-industries' - runs-on: - - namespace-profile-16x32-ubuntu-2204 - steps: - - name: Install Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version: "18" - - - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - clean: false - - - name: Run randomized tests - run: script/randomized-test-ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 7afac285b5..0000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,496 +0,0 @@ -# Generated from xtask::workflows::release -# Rebuild with `cargo xtask workflows`. -name: release -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' -on: - push: - tags: - - v* -jobs: - run_tests_mac: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: self-mini-macos - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy - shell: bash -euxo pipefail {0} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - run_tests_linux: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy - shell: bash -euxo pipefail {0} - - name: steps::cargo_install_nextest - uses: taiki-e/install-action@nextest - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 250 - shell: bash -euxo pipefail {0} - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - run_tests_windows: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: self-32vcpu-windows-2022 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - New-Item -ItemType Directory -Path "./../.cargo" -Force - Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml" - shell: pwsh - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy.ps1 - shell: pwsh - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than.ps1 250 - shell: pwsh - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: pwsh - - name: steps::cleanup_cargo_config - if: always() - run: | - Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue - shell: pwsh - timeout-minutes: 60 - check_scripts: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_tests::check_scripts::run_shellcheck - run: ./script/shellcheck-scripts error - shell: bash -euxo pipefail {0} - - id: get_actionlint - name: run_tests::check_scripts::download_actionlint - run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) - shell: bash -euxo pipefail {0} - - name: run_tests::check_scripts::run_actionlint - run: | - ${{ steps.get_actionlint.outputs.executable }} -color - shell: bash -euxo pipefail {0} - - name: run_tests::check_scripts::check_xtask_workflows - run: | - cargo xtask workflows - if ! git diff --exit-code .github; then - echo "Error: .github directory has uncommitted changes after running 'cargo xtask workflows'" - echo "Please run 'cargo xtask workflows' locally and commit the changes" - exit 1 - fi - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - create_draft_release: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: 25 - ref: ${{ github.ref }} - - name: script/determine-release-channel - run: script/determine-release-channel - shell: bash -euxo pipefail {0} - - name: mkdir -p target/ - run: mkdir -p target/ - shell: bash -euxo pipefail {0} - - name: release::create_draft_release::generate_release_notes - run: node --redirect-warnings=/dev/null ./script/draft-release-notes "$RELEASE_VERSION" "$RELEASE_CHANNEL" > target/release-notes.md - shell: bash -euxo pipefail {0} - - name: release::create_draft_release::create_release - run: script/create-draft-release target/release-notes.md - shell: bash -euxo pipefail {0} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - timeout-minutes: 60 - bundle_linux_aarch64: - needs: - - run_tests_linux - - check_scripts - runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-aarch64.tar.gz - path: target/release/zed-linux-aarch64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-aarch64.gz - path: target/zed-remote-server-linux-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_linux_x86_64: - needs: - - run_tests_linux - - check_scripts - runs-on: namespace-profile-32x64-ubuntu-2004 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-x86_64.tar.gz - path: target/release/zed-linux-x86_64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-x86_64.gz - path: target/zed-remote-server-linux-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_aarch64: - needs: - - run_tests_mac - - check_scripts - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac aarch64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-aarch64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.dmg - path: target/aarch64-apple-darwin/release/Zed-aarch64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-aarch64.gz - path: target/zed-remote-server-macos-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_x86_64: - needs: - - run_tests_mac - - check_scripts - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac x86_64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-x86_64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.dmg - path: target/x86_64-apple-darwin/release/Zed-x86_64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-x86_64.gz - path: target/zed-remote-server-macos-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_aarch64: - needs: - - run_tests_windows - - check_scripts - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture aarch64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-aarch64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.exe - path: target/Zed-aarch64.exe - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_x86_64: - needs: - - run_tests_windows - - check_scripts - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture x86_64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-x86_64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.exe - path: target/Zed-x86_64.exe - if-no-files-found: error - timeout-minutes: 60 - upload_release_assets: - needs: - - create_draft_release - - bundle_linux_aarch64 - - bundle_linux_x86_64 - - bundle_mac_aarch64 - - bundle_mac_x86_64 - - bundle_windows_aarch64 - - bundle_windows_x86_64 - runs-on: namespace-profile-4x8-ubuntu-2204 - steps: - - name: release::download_workflow_artifacts - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 - with: - path: ./artifacts/ - - name: ls -lR ./artifacts - run: ls -lR ./artifacts - shell: bash -euxo pipefail {0} - - name: release::prep_release_artifacts - run: |- - mkdir -p release-artifacts/ - - mv ./artifacts/Zed-aarch64.dmg/Zed-aarch64.dmg release-artifacts/Zed-aarch64.dmg - mv ./artifacts/Zed-x86_64.dmg/Zed-x86_64.dmg release-artifacts/Zed-x86_64.dmg - mv ./artifacts/zed-linux-aarch64.tar.gz/zed-linux-aarch64.tar.gz release-artifacts/zed-linux-aarch64.tar.gz - mv ./artifacts/zed-linux-x86_64.tar.gz/zed-linux-x86_64.tar.gz release-artifacts/zed-linux-x86_64.tar.gz - mv ./artifacts/Zed-x86_64.exe/Zed-x86_64.exe release-artifacts/Zed-x86_64.exe - mv ./artifacts/Zed-aarch64.exe/Zed-aarch64.exe release-artifacts/Zed-aarch64.exe - mv ./artifacts/zed-remote-server-macos-aarch64.gz/zed-remote-server-macos-aarch64.gz release-artifacts/zed-remote-server-macos-aarch64.gz - mv ./artifacts/zed-remote-server-macos-x86_64.gz/zed-remote-server-macos-x86_64.gz release-artifacts/zed-remote-server-macos-x86_64.gz - mv ./artifacts/zed-remote-server-linux-aarch64.gz/zed-remote-server-linux-aarch64.gz release-artifacts/zed-remote-server-linux-aarch64.gz - mv ./artifacts/zed-remote-server-linux-x86_64.gz/zed-remote-server-linux-x86_64.gz release-artifacts/zed-remote-server-linux-x86_64.gz - shell: bash -euxo pipefail {0} - - name: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/* - run: gh release upload "$GITHUB_REF_NAME" --repo=zed-industries/zed release-artifacts/* - shell: bash -euxo pipefail {0} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - auto_release_preview: - needs: - - upload_release_assets - if: startsWith(github.ref, 'refs/tags/v') && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false - run: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false - shell: bash -euxo pipefail {0} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - notify_on_failure: - needs: - - upload_release_assets - - auto_release_preview - if: failure() - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: release::notify_on_failure::notify_slack - run: |- - curl -X POST -H 'Content-type: application/json'\ - --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK" - shell: bash -euxo pipefail {0} - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }} -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml deleted file mode 100644 index d76244175a..0000000000 --- a/.github/workflows/release_nightly.yml +++ /dev/null @@ -1,510 +0,0 @@ -# Generated from xtask::workflows::release_nightly -# Rebuild with `cargo xtask workflows`. -name: release_nightly -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' -on: - push: - tags: - - nightly - schedule: - - cron: 0 7 * * * -jobs: - check_style: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: self-mini-macos - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: 0 - - name: steps::cargo_fmt - run: cargo fmt --all -- --check - shell: bash -euxo pipefail {0} - - name: ./script/clippy - run: ./script/clippy - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - run_tests_windows: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: self-32vcpu-windows-2022 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - New-Item -ItemType Directory -Path "./../.cargo" -Force - Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml" - shell: pwsh - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy.ps1 - shell: pwsh - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than.ps1 250 - shell: pwsh - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: pwsh - - name: steps::cleanup_cargo_config - if: always() - run: | - Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue - shell: pwsh - timeout-minutes: 60 - bundle_linux_aarch64: - needs: - - check_style - - run_tests_windows - runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::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 - shell: bash -euxo pipefail {0} - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-aarch64.tar.gz - path: target/release/zed-linux-aarch64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-aarch64.gz - path: target/zed-remote-server-linux-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_linux_x86_64: - needs: - - check_style - - run_tests_windows - runs-on: namespace-profile-32x64-ubuntu-2004 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::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 - shell: bash -euxo pipefail {0} - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-x86_64.tar.gz - path: target/release/zed-linux-x86_64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-x86_64.gz - path: target/zed-remote-server-linux-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_aarch64: - needs: - - check_style - - run_tests_windows - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::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 - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac aarch64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-aarch64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.dmg - path: target/aarch64-apple-darwin/release/Zed-aarch64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-aarch64.gz - path: target/zed-remote-server-macos-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_x86_64: - needs: - - check_style - - run_tests_windows - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::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 - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac x86_64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-x86_64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.dmg - path: target/x86_64-apple-darwin/release/Zed-x86_64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-x86_64.gz - path: target/zed-remote-server-macos-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_aarch64: - needs: - - check_style - - run_tests_windows - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::set_release_channel_to_nightly - run: | - $ErrorActionPreference = "Stop" - $version = git rev-parse --short HEAD - Write-Host "Publishing version: $version on release channel nightly" - "nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL" - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture aarch64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-aarch64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.exe - path: target/Zed-aarch64.exe - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_x86_64: - needs: - - check_style - - run_tests_windows - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_bundling::set_release_channel_to_nightly - run: | - $ErrorActionPreference = "Stop" - $version = git rev-parse --short HEAD - Write-Host "Publishing version: $version on release channel nightly" - "nightly" | Set-Content -Path "crates/zed/RELEASE_CHANNEL" - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture x86_64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-x86_64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.exe - path: target/Zed-x86_64.exe - if-no-files-found: error - timeout-minutes: 60 - build_nix_linux_x86_64: - needs: - - check_style - - run_tests_windows - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-32x64-ubuntu-2004 - env: - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }} - GIT_LFS_SKIP_SMUDGE: '1' - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: nix_build::build_nix::install_nix - uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - name: nix_build::build_nix::cachix_action - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad - with: - name: zed - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - cachixArgs: -v - - name: nix_build::build_nix::build - run: nix build .#default -L --accept-flake-config - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - continue-on-error: true - build_nix_mac_aarch64: - needs: - - check_style - - run_tests_windows - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: self-mini-macos - env: - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }} - GIT_LFS_SKIP_SMUDGE: '1' - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: nix_build::build_nix::set_path - run: | - echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" - echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH" - shell: bash -euxo pipefail {0} - - name: nix_build::build_nix::cachix_action - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad - with: - name: zed - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - cachixArgs: -v - - name: nix_build::build_nix::build - run: nix build .#default -L --accept-flake-config - shell: bash -euxo pipefail {0} - - name: nix_build::build_nix::limit_store - run: |- - if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then - nix-collect-garbage -d || true - fi - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - continue-on-error: true - update_nightly_tag: - needs: - - bundle_linux_aarch64 - - bundle_linux_x86_64 - - bundle_mac_aarch64 - - bundle_mac_x86_64 - - bundle_windows_aarch64 - - bundle_windows_x86_64 - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-4x8-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: 0 - - name: release::download_workflow_artifacts - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 - with: - path: ./artifacts/ - - name: ls -lR ./artifacts - run: ls -lR ./artifacts - shell: bash -euxo pipefail {0} - - name: release::prep_release_artifacts - run: |- - mkdir -p release-artifacts/ - - mv ./artifacts/Zed-aarch64.dmg/Zed-aarch64.dmg release-artifacts/Zed-aarch64.dmg - mv ./artifacts/Zed-x86_64.dmg/Zed-x86_64.dmg release-artifacts/Zed-x86_64.dmg - mv ./artifacts/zed-linux-aarch64.tar.gz/zed-linux-aarch64.tar.gz release-artifacts/zed-linux-aarch64.tar.gz - mv ./artifacts/zed-linux-x86_64.tar.gz/zed-linux-x86_64.tar.gz release-artifacts/zed-linux-x86_64.tar.gz - mv ./artifacts/Zed-x86_64.exe/Zed-x86_64.exe release-artifacts/Zed-x86_64.exe - mv ./artifacts/Zed-aarch64.exe/Zed-aarch64.exe release-artifacts/Zed-aarch64.exe - mv ./artifacts/zed-remote-server-macos-aarch64.gz/zed-remote-server-macos-aarch64.gz release-artifacts/zed-remote-server-macos-aarch64.gz - mv ./artifacts/zed-remote-server-macos-x86_64.gz/zed-remote-server-macos-x86_64.gz release-artifacts/zed-remote-server-macos-x86_64.gz - mv ./artifacts/zed-remote-server-linux-aarch64.gz/zed-remote-server-linux-aarch64.gz release-artifacts/zed-remote-server-linux-aarch64.gz - mv ./artifacts/zed-remote-server-linux-x86_64.gz/zed-remote-server-linux-x86_64.gz release-artifacts/zed-remote-server-linux-x86_64.gz - shell: bash -euxo pipefail {0} - - name: ./script/upload-nightly - run: ./script/upload-nightly - shell: bash -euxo pipefail {0} - env: - DIGITALOCEAN_SPACES_ACCESS_KEY: ${{ secrets.DIGITALOCEAN_SPACES_ACCESS_KEY }} - DIGITALOCEAN_SPACES_SECRET_KEY: ${{ secrets.DIGITALOCEAN_SPACES_SECRET_KEY }} - - name: release_nightly::update_nightly_tag_job::update_nightly_tag - run: | - if [ "$(git rev-parse nightly)" = "$(git rev-parse HEAD)" ]; then - echo "Nightly tag already points to current commit. Skipping tagging." - exit 0 - fi - git config user.name github-actions - git config user.email github-actions@github.com - git tag -f nightly - git push origin nightly --force - shell: bash -euxo pipefail {0} - - name: release::create_sentry_release - uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c - with: - environment: production - env: - SENTRY_ORG: zed-dev - SENTRY_PROJECT: zed - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - timeout-minutes: 60 - notify_on_failure: - needs: - - bundle_linux_aarch64 - - bundle_linux_x86_64 - - bundle_mac_aarch64 - - bundle_mac_x86_64 - - bundle_windows_aarch64 - - bundle_windows_x86_64 - if: failure() - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: release::notify_on_failure::notify_slack - run: |- - curl -X POST -H 'Content-type: application/json'\ - --data '{"text":"${{ github.workflow }} failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"}' "$SLACK_WEBHOOK" - shell: bash -euxo pipefail {0} - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_WORKFLOW_FAILURES }} diff --git a/.github/workflows/run_agent_evals.yml b/.github/workflows/run_agent_evals.yml deleted file mode 100644 index 421d5a1c80..0000000000 --- a/.github/workflows/run_agent_evals.yml +++ /dev/null @@ -1,67 +0,0 @@ -# Generated from xtask::workflows::run_agent_evals -# Rebuild with `cargo xtask workflows`. -name: run_agent_evals -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - RUST_BACKTRACE: '1' - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }} - GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }} - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_EVAL_TELEMETRY: '1' - MODEL_NAME: ${{ inputs.model_name }} -on: - workflow_dispatch: - inputs: - model_name: - description: model_name - required: true - type: string -jobs: - agent_evals: - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: cargo build --package=eval - run: cargo build --package=eval - shell: bash -euxo pipefail {0} - - name: run_agent_evals::agent_evals::run_eval - run: cargo run --package=eval -- --repetitions=8 --concurrency=1 --model "${MODEL_NAME}" - shell: bash -euxo pipefail {0} - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }} - GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 600 -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/run_bundling.yml b/.github/workflows/run_bundling.yml deleted file mode 100644 index f56e56ac7f..0000000000 --- a/.github/workflows/run_bundling.yml +++ /dev/null @@ -1,269 +0,0 @@ -# Generated from xtask::workflows::run_bundling -# Rebuild with `cargo xtask workflows`. -name: run_bundling -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' -on: - pull_request: - types: - - labeled - - synchronize -jobs: - bundle_linux_aarch64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: namespace-profile-8x32-ubuntu-2004-arm-m4 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-aarch64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-aarch64.tar.gz - path: target/release/zed-linux-aarch64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-aarch64.gz - path: target/zed-remote-server-linux-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_linux_x86_64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: namespace-profile-32x64-ubuntu-2004 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: ./script/bundle-linux - run: ./script/bundle-linux - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact zed-linux-x86_64.tar.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-linux-x86_64.tar.gz - path: target/release/zed-linux-x86_64.tar.gz - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-linux-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-linux-x86_64.gz - path: target/zed-remote-server-linux-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_aarch64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac aarch64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-aarch64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.dmg - path: target/aarch64-apple-darwin/release/Zed-aarch64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-aarch64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-aarch64.gz - path: target/zed-remote-server-macos-aarch64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_mac_x86_64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: self-mini-macos - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} - APPLE_NOTARIZATION_KEY: ${{ secrets.APPLE_NOTARIZATION_KEY }} - APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} - APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: run_bundling::bundle_mac::bundle_mac - run: ./script/bundle-mac x86_64-apple-darwin - shell: bash -euxo pipefail {0} - - name: '@actions/upload-artifact Zed-x86_64.dmg' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.dmg - path: target/x86_64-apple-darwin/release/Zed-x86_64.dmg - if-no-files-found: error - - name: '@actions/upload-artifact zed-remote-server-macos-x86_64.gz' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: zed-remote-server-macos-x86_64.gz - path: target/zed-remote-server-macos-x86_64.gz - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_aarch64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture aarch64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-aarch64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-aarch64.exe - path: target/Zed-aarch64.exe - if-no-files-found: error - timeout-minutes: 60 - bundle_windows_x86_64: - if: |- - (github.event.action == 'labeled' && github.event.label.name == 'run-bundling') || - (github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'run-bundling')) - runs-on: self-32vcpu-windows-2022 - env: - CARGO_INCREMENTAL: 0 - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - AZURE_TENANT_ID: ${{ secrets.AZURE_SIGNING_TENANT_ID }} - AZURE_CLIENT_ID: ${{ secrets.AZURE_SIGNING_CLIENT_ID }} - AZURE_CLIENT_SECRET: ${{ secrets.AZURE_SIGNING_CLIENT_SECRET }} - ACCOUNT_NAME: ${{ vars.AZURE_SIGNING_ACCOUNT_NAME }} - CERT_PROFILE_NAME: ${{ vars.AZURE_SIGNING_CERT_PROFILE_NAME }} - ENDPOINT: ${{ vars.AZURE_SIGNING_ENDPOINT }} - FILE_DIGEST: SHA256 - TIMESTAMP_DIGEST: SHA256 - TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_sentry - uses: matbour/setup-sentry-cli@3e938c54b3018bdd019973689ef984e033b0454b - with: - token: ${{ secrets.SENTRY_AUTH_TOKEN }} - - name: run_bundling::bundle_windows::bundle_windows - run: script/bundle-windows.ps1 -Architecture x86_64 - shell: pwsh - working-directory: ${{ env.ZED_WORKSPACE }} - - name: '@actions/upload-artifact Zed-x86_64.exe' - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 - with: - name: Zed-x86_64.exe - path: target/Zed-x86_64.exe - if-no-files-found: error - timeout-minutes: 60 -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true diff --git a/.github/workflows/run_cron_unit_evals.yml b/.github/workflows/run_cron_unit_evals.yml deleted file mode 100644 index cdfb51cc5b..0000000000 --- a/.github/workflows/run_cron_unit_evals.yml +++ /dev/null @@ -1,77 +0,0 @@ -# Generated from xtask::workflows::run_cron_unit_evals -# Rebuild with `cargo xtask workflows`. -name: run_cron_unit_evals -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - RUST_BACKTRACE: '1' - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} -on: - schedule: - - cron: 47 1 * * 2 - workflow_dispatch: {} -jobs: - cron_unit_evals: - runs-on: namespace-profile-16x32-ubuntu-2204 - strategy: - matrix: - model: - - anthropic/claude-sonnet-4-5-latest - - anthropic/claude-opus-4-5-latest - - google/gemini-3-pro - - openai/gpt-5 - fail-fast: false - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::cargo_install_nextest - uses: taiki-e/install-action@nextest - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 250 - shell: bash -euxo pipefail {0} - - name: ./script/run-unit-evals - run: ./script/run-unit-evals - shell: bash -euxo pipefail {0} - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }} - GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }} - ZED_AGENT_MODEL: ${{ matrix.model }} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - - name: run_agent_evals::cron_unit_evals::send_failure_to_slack - if: ${{ failure() }} - uses: slackapi/slack-github-action@b0fa283ad8fea605de13dc3f449259339835fc52 - with: - method: chat.postMessage - token: ${{ secrets.SLACK_APP_ZED_UNIT_EVALS_BOT_TOKEN }} - payload: | - channel: C04UDRNNJFQ - text: "Unit Evals Failed: https://github.com/zed-industries/zed/actions/runs/${{ github.run_id }}" -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml deleted file mode 100644 index 9584d7a0cb..0000000000 --- a/.github/workflows/run_tests.yml +++ /dev/null @@ -1,578 +0,0 @@ -# Generated from xtask::workflows::run_tests -# Rebuild with `cargo xtask workflows`. -name: run_tests -env: - CARGO_TERM_COLOR: always - RUST_BACKTRACE: '1' - CARGO_INCREMENTAL: '0' -on: - pull_request: - branches: - - '**' - push: - branches: - - main - - v[0-9]+.[0-9]+.x -jobs: - orchestrate: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }} - - id: filter - name: filter - run: | - if [ -z "$GITHUB_BASE_REF" ]; then - echo "Not in a PR context (i.e., push to main/stable/preview)" - COMPARE_REV="$(git rev-parse HEAD~1)" - else - echo "In a PR context comparing to pull_request.base.ref" - git fetch origin "$GITHUB_BASE_REF" --depth=350 - COMPARE_REV="$(git merge-base "origin/${GITHUB_BASE_REF}" HEAD)" - fi - CHANGED_FILES="$(git diff --name-only "$COMPARE_REV" ${{ github.sha }})" - - check_pattern() { - local output_name="$1" - local pattern="$2" - local grep_arg="$3" - - echo "$CHANGED_FILES" | grep "$grep_arg" "$pattern" && \ - echo "${output_name}=true" >> "$GITHUB_OUTPUT" || \ - echo "${output_name}=false" >> "$GITHUB_OUTPUT" - } - - check_pattern "run_action_checks" '^\.github/(workflows/|actions/|actionlint.yml)|tooling/xtask|script/' -qP - check_pattern "run_docs" '^(docs/|crates/.*\.rs)' -qP - check_pattern "run_licenses" '^(Cargo.lock|script/.*licenses)' -qP - check_pattern "run_nix" '^(nix/|flake\.|Cargo\.|rust-toolchain.toml|\.cargo/config.toml)' -qP - check_pattern "run_tests" '^(docs/|script/update_top_ranking_issues/|\.github/(ISSUE_TEMPLATE|workflows/(?!run_tests)))' -qvP - shell: bash -euxo pipefail {0} - outputs: - run_action_checks: ${{ steps.filter.outputs.run_action_checks }} - run_docs: ${{ steps.filter.outputs.run_docs }} - run_licenses: ${{ steps.filter.outputs.run_licenses }} - run_nix: ${{ steps.filter.outputs.run_nix }} - run_tests: ${{ steps.filter.outputs.run_tests }} - check_style: - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') - runs-on: namespace-profile-4x8-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_pnpm - uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 - with: - version: '9' - - name: ./script/prettier - run: ./script/prettier - shell: bash -euxo pipefail {0} - - name: ./script/check-todos - run: ./script/check-todos - shell: bash -euxo pipefail {0} - - name: ./script/check-keymaps - run: ./script/check-keymaps - shell: bash -euxo pipefail {0} - - name: run_tests::check_style::check_for_typos - uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 - with: - config: ./typos.toml - - name: steps::cargo_fmt - run: cargo fmt --all -- --check - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - run_tests_windows: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: self-32vcpu-windows-2022 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - New-Item -ItemType Directory -Path "./../.cargo" -Force - Copy-Item -Path "./.cargo/ci-config.toml" -Destination "./../.cargo/config.toml" - shell: pwsh - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy.ps1 - shell: pwsh - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than.ps1 250 - shell: pwsh - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: pwsh - - name: steps::cleanup_cargo_config - if: always() - run: | - Remove-Item -Recurse -Path "./../.cargo" -Force -ErrorAction SilentlyContinue - shell: pwsh - timeout-minutes: 60 - run_tests_linux: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy - shell: bash -euxo pipefail {0} - - name: steps::cargo_install_nextest - uses: taiki-e/install-action@nextest - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 250 - shell: bash -euxo pipefail {0} - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - run_tests_mac: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: self-mini-macos - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::setup_node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 - with: - node-version: '20' - - name: steps::clippy - run: ./script/clippy - shell: bash -euxo pipefail {0} - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 300 - shell: bash -euxo pipefail {0} - - name: steps::cargo_nextest - run: cargo nextest run --workspace --no-fail-fast - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - doctests: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - id: run_doctests - name: run_tests::doctests::run_doctests - run: | - cargo test --workspace --doc --no-fail-fast - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - check_workspace_binaries: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: namespace-profile-8x16-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: cargo build -p collab - run: cargo build -p collab - shell: bash -euxo pipefail {0} - - name: cargo build --workspace --bins --examples - run: cargo build --workspace --bins --examples - shell: bash -euxo pipefail {0} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - check_dependencies: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: run_tests::check_dependencies::install_cargo_machete - uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386 - with: - command: install - args: cargo-machete@0.7.0 - - name: run_tests::check_dependencies::run_cargo_machete - uses: clechasseur/rs-cargo@8435b10f6e71c2e3d4d3b7573003a8ce4bfc6386 - with: - command: machete - - name: run_tests::check_dependencies::check_cargo_lock - run: cargo update --locked --workspace - shell: bash -euxo pipefail {0} - - name: run_tests::check_dependencies::check_vulnerable_dependencies - if: github.event_name == 'pull_request' - uses: actions/dependency-review-action@67d4f4bd7a9b17a0db54d2a7519187c65e339de8 - with: - license-check: false - timeout-minutes: 60 - check_docs: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_docs == 'true' - runs-on: namespace-profile-8x16-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: run_tests::check_docs::lychee_link_check - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 - with: - args: --no-progress --exclude '^http' './docs/src/**/*' - fail: true - jobSummary: false - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: run_tests::check_docs::install_mdbook - uses: peaceiris/actions-mdbook@ee69d230fe19748b7abf22df32acaa93833fad08 - with: - mdbook-version: 0.4.37 - - name: run_tests::check_docs::build_docs - run: | - mkdir -p target/deploy - mdbook build ./docs --dest-dir=../target/deploy/docs/ - shell: bash -euxo pipefail {0} - - name: run_tests::check_docs::lychee_link_check - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 - with: - args: --no-progress --exclude '^http' 'target/deploy/docs' - fail: true - jobSummary: false - timeout-minutes: 60 - check_licenses: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_licenses == 'true' - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: ./script/check-licenses - run: ./script/check-licenses - shell: bash -euxo pipefail {0} - - name: ./script/generate-licenses - run: ./script/generate-licenses - shell: bash -euxo pipefail {0} - check_scripts: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_action_checks == 'true' - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: run_tests::check_scripts::run_shellcheck - run: ./script/shellcheck-scripts error - shell: bash -euxo pipefail {0} - - id: get_actionlint - name: run_tests::check_scripts::download_actionlint - run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) - shell: bash -euxo pipefail {0} - - name: run_tests::check_scripts::run_actionlint - run: | - ${{ steps.get_actionlint.outputs.executable }} -color - shell: bash -euxo pipefail {0} - - name: run_tests::check_scripts::check_xtask_workflows - run: | - cargo xtask workflows - if ! git diff --exit-code .github; then - echo "Error: .github directory has uncommitted changes after running 'cargo xtask workflows'" - echo "Please run 'cargo xtask workflows' locally and commit the changes" - exit 1 - fi - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - build_nix_linux_x86_64: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_nix == 'true' - runs-on: namespace-profile-32x64-ubuntu-2004 - env: - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }} - GIT_LFS_SKIP_SMUDGE: '1' - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: nix_build::build_nix::install_nix - uses: cachix/install-nix-action@02a151ada4993995686f9ed4f1be7cfbb229e56f - with: - github_access_token: ${{ secrets.GITHUB_TOKEN }} - - name: nix_build::build_nix::cachix_action - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad - with: - name: zed - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - cachixArgs: -v - pushFilter: -zed-editor-[0-9.]*-nightly - - name: nix_build::build_nix::build - run: nix build .#debug -L --accept-flake-config - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - continue-on-error: true - build_nix_mac_aarch64: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_nix == 'true' - runs-on: self-mini-macos - env: - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_MINIDUMP_ENDPOINT: ${{ secrets.ZED_SENTRY_MINIDUMP_ENDPOINT }} - ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON: ${{ secrets.ZED_CLOUD_PROVIDER_ADDITIONAL_MODELS_JSON }} - GIT_LFS_SKIP_SMUDGE: '1' - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: nix_build::build_nix::set_path - run: | - echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH" - echo "/Users/administrator/.nix-profile/bin" >> "$GITHUB_PATH" - shell: bash -euxo pipefail {0} - - name: nix_build::build_nix::cachix_action - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad - with: - name: zed - authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} - cachixArgs: -v - pushFilter: -zed-editor-[0-9.]*-nightly - - name: nix_build::build_nix::build - run: nix build .#debug -L --accept-flake-config - shell: bash -euxo pipefail {0} - - name: nix_build::build_nix::limit_store - run: |- - if [ "$(du -sm /nix/store | cut -f1)" -gt 50000 ]; then - nix-collect-garbage -d || true - fi - shell: bash -euxo pipefail {0} - timeout-minutes: 60 - continue-on-error: true - check_postgres_and_protobuf_migrations: - needs: - - orchestrate - if: needs.orchestrate.outputs.run_tests == 'true' - runs-on: namespace-profile-16x32-ubuntu-2204 - env: - GIT_AUTHOR_NAME: Protobuf Action - GIT_AUTHOR_EMAIL: ci@zed.dev - GIT_COMMITTER_NAME: Protobuf Action - GIT_COMMITTER_EMAIL: ci@zed.dev - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - fetch-depth: 0 - - name: run_tests::check_postgres_and_protobuf_migrations::remove_untracked_files - run: git clean -df - shell: bash -euxo pipefail {0} - - name: run_tests::check_postgres_and_protobuf_migrations::ensure_fresh_merge - run: | - if [ -z "$GITHUB_BASE_REF" ]; - then - echo "BUF_BASE_BRANCH=$(git merge-base origin/main HEAD)" >> "$GITHUB_ENV" - else - git checkout -B temp - git merge -q "origin/$GITHUB_BASE_REF" -m "merge main into temp" - echo "BUF_BASE_BRANCH=$GITHUB_BASE_REF" >> "$GITHUB_ENV" - fi - shell: bash -euxo pipefail {0} - - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_setup_action - uses: bufbuild/buf-setup-action@v1 - with: - version: v1.29.0 - github_token: ${{ secrets.GITHUB_TOKEN }} - - name: run_tests::check_postgres_and_protobuf_migrations::bufbuild_breaking_action - uses: bufbuild/buf-breaking-action@v1 - with: - input: crates/proto/proto/ - against: https://github.com/${GITHUB_REPOSITORY}.git#branch=${BUF_BASE_BRANCH},subdir=crates/proto/proto/ - timeout-minutes: 60 - tests_pass: - needs: - - orchestrate - - check_style - - run_tests_windows - - run_tests_linux - - run_tests_mac - - doctests - - check_workspace_binaries - - check_dependencies - - check_docs - - check_licenses - - check_scripts - - build_nix_linux_x86_64 - - build_nix_mac_aarch64 - if: (github.repository_owner == 'zed-industries' || github.repository_owner == 'zed-extensions') && always() - runs-on: namespace-profile-2x4-ubuntu-2404 - steps: - - name: run_tests::tests_pass - run: | - set +x - EXIT_CODE=0 - - check_result() { - echo "* $1: $2" - if [[ "$2" != "skipped" && "$2" != "success" ]]; then EXIT_CODE=1; fi - } - - check_result "orchestrate" "${{ needs.orchestrate.result }}" - check_result "check_style" "${{ needs.check_style.result }}" - check_result "run_tests_windows" "${{ needs.run_tests_windows.result }}" - check_result "run_tests_linux" "${{ needs.run_tests_linux.result }}" - check_result "run_tests_mac" "${{ needs.run_tests_mac.result }}" - check_result "doctests" "${{ needs.doctests.result }}" - check_result "check_workspace_binaries" "${{ needs.check_workspace_binaries.result }}" - check_result "check_dependencies" "${{ needs.check_dependencies.result }}" - check_result "check_docs" "${{ needs.check_docs.result }}" - check_result "check_licenses" "${{ needs.check_licenses.result }}" - check_result "check_scripts" "${{ needs.check_scripts.result }}" - check_result "build_nix_linux_x86_64" "${{ needs.build_nix_linux_x86_64.result }}" - check_result "build_nix_mac_aarch64" "${{ needs.build_nix_mac_aarch64.result }}" - - exit $EXIT_CODE - shell: bash -euxo pipefail {0} -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.ref_name == 'main' && github.sha || 'anysha' }} - cancel-in-progress: true diff --git a/.github/workflows/run_unit_evals.yml b/.github/workflows/run_unit_evals.yml deleted file mode 100644 index 8f64a5c8bc..0000000000 --- a/.github/workflows/run_unit_evals.yml +++ /dev/null @@ -1,69 +0,0 @@ -# Generated from xtask::workflows::run_unit_evals -# Rebuild with `cargo xtask workflows`. -name: run_unit_evals -env: - CARGO_TERM_COLOR: always - CARGO_INCREMENTAL: '0' - RUST_BACKTRACE: '1' - ZED_CLIENT_CHECKSUM_SEED: ${{ secrets.ZED_CLIENT_CHECKSUM_SEED }} - ZED_EVAL_TELEMETRY: '1' - MODEL_NAME: ${{ inputs.model_name }} -on: - workflow_dispatch: - inputs: - model_name: - description: model_name - required: true - type: string - commit_sha: - description: commit_sha - required: true - type: string -jobs: - run_unit_evals: - runs-on: namespace-profile-16x32-ubuntu-2204 - steps: - - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - with: - clean: false - - name: steps::setup_cargo_config - run: | - mkdir -p ./../.cargo - cp ./.cargo/ci-config.toml ./../.cargo/config.toml - shell: bash -euxo pipefail {0} - - name: steps::cache_rust_dependencies_namespace - uses: namespacelabs/nscloud-cache-action@v1 - with: - cache: rust - - name: steps::setup_linux - run: ./script/linux - shell: bash -euxo pipefail {0} - - name: steps::install_mold - run: ./script/install-mold - shell: bash -euxo pipefail {0} - - name: steps::download_wasi_sdk - run: ./script/download-wasi-sdk - shell: bash -euxo pipefail {0} - - name: steps::cargo_install_nextest - uses: taiki-e/install-action@nextest - - name: steps::clear_target_dir_if_large - run: ./script/clear-target-dir-if-larger-than 250 - shell: bash -euxo pipefail {0} - - name: ./script/run-unit-evals - run: ./script/run-unit-evals - shell: bash -euxo pipefail {0} - env: - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }} - GOOGLE_CLOUD_PROJECT: ${{ secrets.GOOGLE_CLOUD_PROJECT }} - UNIT_EVAL_COMMIT: ${{ inputs.commit_sha }} - - name: steps::cleanup_cargo_config - if: always() - run: | - rm -rf ./../.cargo - shell: bash -euxo pipefail {0} -concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.run_id }} - cancel-in-progress: true diff --git a/ci/Dockerfile.namespace b/ci/Dockerfile.namespace deleted file mode 100644 index f370dae194..0000000000 --- a/ci/Dockerfile.namespace +++ /dev/null @@ -1,21 +0,0 @@ -ARG NAMESPACE_BASE_IMAGE_REF="" - -# Your image must build FROM NAMESPACE_BASE_IMAGE_REF -FROM ${NAMESPACE_BASE_IMAGE_REF} AS base - -# Remove problematic git-lfs packagecloud source -RUN sudo rm -f /etc/apt/sources.list.d/*git-lfs*.list -# Install git and SSH for cloning private repositories -RUN sudo apt-get update && \ - sudo apt-get install -y git openssh-client - -# Clone the Zed repository -RUN git clone https://github.com/zed-industries/zed.git ~/zed - -# Run the Linux installation script -WORKDIR /home/runner/zed -RUN ./script/linux - -# Clean up unnecessary files to reduce image size -RUN sudo apt-get clean && sudo rm -rf \ - /home/runner/zed