Add Linux build CI (#7581)

Release Notes:

- N/A
This commit is contained in:
Mikayla Maki 2024-02-08 12:56:29 -08:00 committed by GitHub
parent e7fcddff69
commit ad88e9754e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 55 additions and 47 deletions

View File

@ -8,15 +8,6 @@ runs:
shell: bash -euxo pipefail {0}
run: cargo fmt --all -- --check
- name: cargo clippy
shell: bash -euxo pipefail {0}
# clippy.toml is not currently supporting specifying allowed lints
# so specify those here, and disable the rest until Zed's workspace
# will have more fixes & suppression for the standard lint set
run: |
cargo clippy --release --workspace --all-features --all-targets -- -A clippy::all -D clippy::dbg_macro -D clippy::todo
cargo clippy -p gpui
- name: Find modified migrations
shell: bash -euxo pipefail {0}
run: |

View File

@ -23,7 +23,7 @@ env:
jobs:
style:
name: Check formatting, Clippy lints, and spelling
name: Check formatting and spelling
runs-on:
- self-hosted
- test
@ -59,8 +59,8 @@ jobs:
input: "crates/rpc/proto/"
against: "https://github.com/${GITHUB_REPOSITORY}.git#branch=main,subdir=crates/rpc/proto/"
tests:
name: Run tests
macos_tests:
name: (macOS) Run Clippy and tests
runs-on:
- self-hosted
- test
@ -71,6 +71,10 @@ jobs:
clean: false
submodules: "recursive"
- name: cargo clippy
shell: bash -euxo pipefail {0}
run: script/clippy
- name: Run tests
uses: ./.github/actions/run_tests
@ -80,13 +84,46 @@ jobs:
- name: Build other binaries
run: cargo build --workspace --bins --all-features
# todo!(linux): Actually run the tests
linux_tests:
name: (Linux) Run Clippy and tests
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
clean: false
submodules: "recursive"
- name: Restore from cache
uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: configure linux
shell: bash -euxo pipefail {0}
run: script/linux
- name: cargo clippy
shell: bash -euxo pipefail {0}
run: script/clippy
- name: Build Zed
run: cargo build -p zed
bundle:
name: Bundle app
runs-on:
- self-hosted
- bundle
if: ${{ startsWith(github.ref, 'refs/tags/v') || contains(github.event.pull_request.labels.*.name, 'run-build-dmg') }}
needs: tests
needs: [macos_tests, linux_tests]
env:
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}

View File

@ -27,6 +27,10 @@ jobs:
- name: Run style checks
uses: ./.github/actions/check_style
- name: Run clippy
shell: bash -euxo pipefail {0}
run: script/clippy
tests:
name: Run tests
runs-on:

View File

@ -31,6 +31,9 @@ jobs:
- name: Run style checks
uses: ./.github/actions/check_style
- name: Run clippy
shell: bash -euxo pipefail {0}
run: script/clippy
tests:
name: Run tests
if: github.repository_owner == 'zed-industries'

View File

@ -231,22 +231,6 @@ impl Platform for LinuxPlatform {
Box::new(LinuxWindow(window_ptr))
}
fn set_display_link_output_callback(
&self,
display_id: DisplayId,
callback: Box<dyn FnMut() + Send>,
) {
log::warn!("unimplemented: set_display_link_output_callback");
}
fn start_display_link(&self, display_id: DisplayId) {
unimplemented!()
}
fn stop_display_link(&self, display_id: DisplayId) {
unimplemented!()
}
fn open_url(&self, url: &str) {
unimplemented!()
}

7
script/clippy Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# clippy.toml is not currently supporting specifying allowed lints
# so specify those here, and disable the rest until Zed's workspace
# will have more fixes & suppression for the standard lint set
cargo clippy --release --workspace --all-features --all-targets -- -A clippy::all -D clippy::dbg_macro -D clippy::todo
cargo clippy -p gpui

View File

@ -1,25 +1,7 @@
#!/usr/bin/bash -e
# if not on Linux, do nothing
[[ $(uname) == "Linux" ]] || exit 0
# Copy assets to the user's home directory if they don't exist
mkdir -p "$HOME/.config/zed"
mkdir -p "$HOME/.config/zed/plugins"
mkdir -p "$HOME/.config/zed/themes"
cp -ruL ./assets/themes/*/*.json "$HOME/.config/zed/themes"
test -f "$HOME/.config/zed/settings.json" ||
cp -uL ./assets/settings/initial_user_settings.json "$HOME/.config/zed/settings.json"
test -f "$HOME/.config/zed/keymap.json" ||
cp -uL ./assets/keymaps/default.json "$HOME/.config/zed/keymap.json"
# if sudo is not installed, define an empty alias
maysudo=$(command -v sudo || true)
export maysudo
# Ubuntu, Debian, etc.
# https://packages.ubuntu.com/