+# 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
jobs:
rust:
+ if: github.repository == 'rust-lang/rust-analyzer'
name: Rust
runs-on: ${{ matrix.os }}
env:
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
# Weird targets to catch non-portable code
rust-cross:
+ if: github.repository == 'rust-lang/rust-analyzer'
name: Rust Cross
runs-on: ubuntu-latest
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 }} ${{ env.targets_ide }}
+ run: |
+ rustup update --no-self-update stable
+ rustup target add ${{ env.targets }} ${{ env.targets_ide }}
- name: Cache Dependencies
uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
done
typescript:
+ if: github.repository == 'rust-lang/rust-analyzer'
name: TypeScript
strategy:
fail-fast: false
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Install Nodejs
uses: actions/setup-node@v1
- 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