CARGO_NET_RETRY: 10
CI: 1
RUST_BACKTRACE: short
- RUSTFLAGS: -D warnings
+ RUSTFLAGS: "-D warnings -W unreachable-pub"
RUSTUP_MAX_RETRIES: 10
jobs:
- rust-audit:
- name: Audit Rust vulnerabilities
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- - uses: actions-rs/install@v0.1
- with:
- crate: cargo-audit
- use-tool-cache: true
-
- - run: cargo audit
-
rust:
name: Rust
runs-on: ${{ matrix.os }}
env:
- CC: deny_c
+ CC: deny_c
strategy:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v2
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: 20
# We need to disable the existing toolchain to avoid updating rust-docs
# which takes a long time. The fastest way to do this is to rename the
override: true
components: rustfmt, rust-src
- - if: matrix.os == 'ubuntu-latest'
- run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
+ - name: Cache Dependencies
+ uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
- - name: Cache cargo registry
- uses: actions/cache@v1
- with:
- path: ~/.cargo/registry
- key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
+ - name: Compile
+ run: cargo test --no-run --locked
- - name: Cache cargo index
- uses: actions/cache@v1
- with:
- path: ~/.cargo/git
- key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
+ - name: Test
+ run: cargo test -- --nocapture
- - name: Cache cargo target dir
- uses: actions/cache@v1
- with:
- path: target
- key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
+ # Weird targets to catch non-portable code
+ rust-cross:
+ name: Rust Cross
+ runs-on: ubuntu-latest
- - name: Compile
- run: cargo test --no-run
+ env:
+ targets: "powerpc-unknown-linux-gnu x86_64-unknown-linux-musl"
- # We have to build rust-analyzer first for running related heavy tests
- - name: Build rust-analyzer
- run: cargo build -p rust-analyzer
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
- - name: Test
- run: cargo test
+ - name: Install Rust toolchain
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: stable
+ profile: minimal
+ override: true
- - name: Prepare cache
- run: cargo xtask pre-cache
+ - name: Install Rust targets
+ run: rustup target add ${{ env.targets }}
- - name: Prepare cache 2
- if: matrix.os == 'windows-latest'
- run: Remove-Item ./target/debug/xtask.exe, ./target/debug/deps/xtask.exe
+ - name: Cache Dependencies
+ uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
+
+ - name: Check
+ run: |
+ for target in ${{ env.targets }}; do
+ cargo check --target=$target --all-targets
+ done
typescript:
name: TypeScript
- runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest]
+
+ runs-on: ${{ matrix.os }}
+
steps:
- name: Checkout repository
uses: actions/checkout@v2
- run: npm ci
working-directory: ./editors/code
- - run: npm audit || { sleep 10 && npm audit; } || { sleep 30 && npm audit; }
- working-directory: ./editors/code
+# - run: npm audit || { sleep 10 && npm audit; } || { sleep 30 && npm audit; }
+# if: runner.os == 'Linux'
+# working-directory: ./editors/code
- run: npm run lint
working-directory: ./editors/code
+ - name: Run vscode tests
+ uses: GabrielBB/xvfb-action@v1.2
+ env:
+ VSCODE_CLI: 1
+ with:
+ run: npm --prefix ./editors/code test
+ # working-directory: ./editors/code # does not work: https://github.com/GabrielBB/xvfb-action/issues/8
+
- run: npm run package --scripts-prepend-node-path
working-directory: ./editors/code