Add initial hover support #7
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Please make sure that the `needs` fields for both `end-success` and `end-failure` | |
# are updated when adding new jobs! | |
name: CI | |
on: | |
pull_request: | |
env: | |
CARGO_INCREMENTAL: 0 | |
CARGO_NET_RETRY: 10 | |
CI: 1 | |
RUST_BACKTRACE: short | |
RUSTFLAGS: "-D warnings -W unreachable-pub -W bare-trait-objects" | |
RUSTUP_MAX_RETRIES: 10 | |
jobs: | |
changes: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: read | |
outputs: | |
typescript: ${{ steps.filter.outputs.typescript }} | |
proc_macros: ${{ steps.filter.outputs.proc_macros }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@1441771bbfdd59dcd748680ee64ebd8faab1a242 | |
id: filter | |
with: | |
filters: | | |
typescript: | |
- 'editors/code/**' | |
rust: | |
needs: changes | |
name: Rust | |
runs-on: ${{ matrix.os }} | |
env: | |
RUST_CHANNEL: "${{ 'nightly' || 'stable' }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Rust toolchain | |
run: | | |
rustup update --no-self-update ${{ env.RUST_CHANNEL }} | |
rustup default ${{ env.RUST_CHANNEL }} | |
rustup component add --toolchain ${{ env.RUST_CHANNEL }} rustfmt rust-src | |
# https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/rust.json | |
- name: Install Rust Problem Matcher | |
if: matrix.os == 'ubuntu-latest' | |
run: echo "::add-matcher::.github/rust.json" | |
- name: Cache Dependencies | |
uses: Swatinem/rust-cache@9bdad043e88c75890e36ad3bbc8d27f0090dd609 | |
with: | |
key: ${{ env.RUST_CHANNEL }} | |
- name: Bump opt-level | |
if: matrix.os == 'ubuntu-latest' | |
run: sed -i '/\[profile.dev]/a opt-level=1' Cargo.toml | |
- name: Compile (tests) | |
run: cargo test --no-run --locked | |
# It's faster to `test` before `build` ¯\_(ツ)_/¯ | |
- name: Compile (surrealql-lsp) | |
if: matrix.os == 'ubuntu-latest' | |
run: cargo build --quiet | |
- name: Test | |
if: matrix.os == 'ubuntu-latest' || matrix.os == 'windows-latest' || github.event_name == 'push' | |
run: cargo test -- --nocapture --quiet | |
- name: Switch to stable toolchain | |
run: | | |
rustup update --no-self-update stable | |
rustup component add --toolchain stable rust-src clippy | |
rustup default stable | |
- name: clippy | |
if: matrix.os == 'windows-latest' | |
run: cargo clippy --all-targets | |
- name: rustfmt | |
if: matrix.os == 'ubuntu-latest' | |
run: cargo fmt -- --check | |
typescript: | |
needs: changes | |
name: TypeScript | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
if: needs.changes.outputs.typescript == 'true' | |
- name: Install Nodejs | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
if: needs.changes.outputs.typescript == 'true' | |
- run: npm ci | |
working-directory: ./editors/code | |
if: needs.changes.outputs.typescript == 'true' | |
# If this steps fails, your code's type integrity might be wrong at some places at TypeScript level. | |
- run: npm run typecheck | |
working-directory: ./editors/code | |
if: needs.changes.outputs.typescript == 'true' | |
# You may fix the code automatically by running `npm run lint:fix` if this steps fails. | |
- run: npm run lint:check | |
working-directory: ./editors/code | |
if: needs.changes.outputs.typescript == 'true' | |
# To fix this steps, please run `npm run format`. | |
- run: npm run format:check | |
working-directory: ./editors/code | |
if: needs.changes.outputs.typescript == 'true' | |
- run: npm run package --scripts-prepend-node-path | |
working-directory: ./editors/code | |
if: needs.changes.outputs.typescript == 'true' | |
typo-check: | |
name: Typo Check | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
env: | |
FORCE_COLOR: 1 | |
TYPOS_VERSION: v1.18.0 | |
steps: | |
- name: download typos | |
run: curl -LsSf https://github.com/crate-ci/typos/releases/download/$TYPOS_VERSION/typos-$TYPOS_VERSION-x86_64-unknown-linux-musl.tar.gz | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: check for typos | |
run: typos | |