X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=.github%2Fworkflows%2Fci.yaml;h=0c81ff0789fbbd592c784a3bf299ffdf7ea23f67;hb=53ec791dc6b22e581f9e5aabeda5edfc806564cb;hp=63518e67ff4ca716ccffca9e5717e4d97614b178;hpb=242fa3c15b43fca473528c93714beb30ef6e1331;p=rust.git diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 63518e67ff4..0c81ff0789f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,22 +1,25 @@ +# 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: push: branches: - - master - - staging - - trying + - auto + - try env: CARGO_INCREMENTAL: 0 CARGO_NET_RETRY: 10 CI: 1 RUST_BACKTRACE: short - RUSTFLAGS: "-D warnings -W unreachable-pub" + RUSTFLAGS: "-D warnings -W unreachable-pub -W rust-2021-compatibility" RUSTUP_MAX_RETRIES: 10 jobs: rust: + if: github.repository == 'rust-lang/rust-analyzer' name: Rust runs-on: ${{ matrix.os }} env: @@ -29,26 +32,15 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 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 - # existing folder, as deleting it takes about as much time as not doing - # anything and just updating rust-docs. - - name: Rename existing rust toolchain (Windows) - if: matrix.os == 'windows-latest' - run: Rename-Item C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc C:\Users\runneradmin\.rustup\toolchains\stable-x86_64-pc-windows-msvc.old - - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - components: rustfmt, rust-src + run: | + rustup update --no-self-update stable + rustup component add rustfmt rust-src - name: Cache Dependencies uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 @@ -57,29 +49,28 @@ jobs: run: cargo test --no-run --locked - name: Test - run: cargo test -- --nocapture + run: cargo test -- --nocapture --quiet # Weird targets to catch non-portable code rust-cross: + if: github.repository == 'rust-lang/rust-analyzer' name: Rust Cross runs-on: ubuntu-latest env: targets: "powerpc-unknown-linux-gnu x86_64-unknown-linux-musl" + # The rust-analyzer binary is not expected to compile on WASM, but the IDE + # crate should + targets_ide: "wasm32-unknown-unknown" steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Install Rust targets - run: rustup target add ${{ env.targets }} + run: | + rustup update --no-self-update stable + rustup target add ${{ env.targets }} ${{ env.targets_ide }} - name: Cache Dependencies uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72 @@ -89,8 +80,12 @@ jobs: for target in ${{ env.targets }}; do cargo check --target=$target --all-targets done + for target in ${{ env.targets_ide }}; do + cargo check -p ide --target=$target --all-targets + done typescript: + if: github.repository == 'rust-lang/rust-analyzer' name: TypeScript strategy: fail-fast: false @@ -101,12 +96,16 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Nodejs uses: actions/setup-node@v1 with: - node-version: 12.x + node-version: 14.x + + - name: Install xvfb + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get install -y xvfb - run: npm ci working-directory: ./editors/code @@ -118,13 +117,40 @@ jobs: - run: npm run lint working-directory: ./editors/code - - name: Run vscode tests - uses: GabrielBB/xvfb-action@v1.2 + - name: Run VS Code tests (Linux) + if: matrix.os == 'ubuntu-latest' 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: xvfb-run npm test + working-directory: ./editors/code + + - name: Run VS Code tests (Windows) + if: matrix.os == 'windows-latest' + env: + VSCODE_CLI: 1 + run: npm test + working-directory: ./editors/code + + - run: npm run pretest + working-directory: ./editors/code - run: npm run package --scripts-prepend-node-path working-directory: ./editors/code + + end-success: + name: bors build finished + if: github.event.pusher.name == 'bors' && success() + runs-on: ubuntu-latest + needs: [rust, rust-cross, typescript] + steps: + - name: Mark the job as successful + run: exit 0 + + end-failure: + name: bors build finished + if: github.event.pusher.name == 'bors' && (failure() || cancelled()) + runs-on: ubuntu-latest + needs: [rust, rust-cross, typescript] + steps: + - name: Mark the job as a failure + run: exit 1