diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/ci.yaml | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000..3a8997726 --- /dev/null +++ b/.github/workflows/ci.yaml | |||
@@ -0,0 +1,86 @@ | |||
1 | name: Continuous integration | ||
2 | on: [pull_request, push] | ||
3 | |||
4 | jobs: | ||
5 | rust-tests: | ||
6 | name: Rust tests | ||
7 | runs-on: ubuntu-latest | ||
8 | env: | ||
9 | RUSTFLAGS: -D warnings | ||
10 | CARGO_INCREMENTAL: 0 | ||
11 | steps: | ||
12 | - name: Checkout repository | ||
13 | uses: actions/checkout@v1 | ||
14 | - name: Install Rust toolchain | ||
15 | uses: actions-rs/toolchain@v1 | ||
16 | with: | ||
17 | toolchain: stable | ||
18 | profile: minimal | ||
19 | override: true | ||
20 | components: rustfmt, rust-src | ||
21 | - name: Generate lockfile | ||
22 | uses: actions-rs/cargo@v1 | ||
23 | with: | ||
24 | command: generate-lockfile | ||
25 | - name: Cargo target cache | ||
26 | uses: actions/cache@v1 | ||
27 | with: | ||
28 | path: target | ||
29 | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | ||
30 | - name: Compile | ||
31 | uses: actions-rs/cargo@v1 | ||
32 | with: | ||
33 | command: test | ||
34 | args: --no-run | ||
35 | - name: Test | ||
36 | uses: actions-rs/cargo@v1 | ||
37 | with: | ||
38 | command: test | ||
39 | - name: Prepare build directory for cache | ||
40 | run: | | ||
41 | find ./target/debug -maxdepth 1 -type f -delete && \ | ||
42 | rm -fr ./target/debug/{deps,.fingerprint}/{*ra_*,*heavy_test*,*gen_lsp*,*thread_worker*} && \ | ||
43 | rm -f ./target/.rustc_info.json | ||
44 | vscode-tests: | ||
45 | name: VS Code tests | ||
46 | runs-on: ubuntu-latest | ||
47 | env: | ||
48 | CXX: g++-4.9 | ||
49 | CC: gcc-4.9 | ||
50 | steps: | ||
51 | - name: Checkout repository | ||
52 | uses: actions/checkout@v1 | ||
53 | - name: Install Rust toolchain | ||
54 | uses: actions-rs/toolchain@v1 | ||
55 | with: | ||
56 | toolchain: stable | ||
57 | profile: minimal | ||
58 | override: true | ||
59 | - name: Generate lockfile | ||
60 | uses: actions-rs/cargo@v1 | ||
61 | with: | ||
62 | command: generate-lockfile | ||
63 | - name: Cargo target cache | ||
64 | uses: actions/cache@v1 | ||
65 | with: | ||
66 | path: target | ||
67 | key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | ||
68 | - name: Install Nodejs | ||
69 | uses: actions/setup-node@v1 | ||
70 | with: | ||
71 | node-version: 12.x | ||
72 | - name: Install xvfb | ||
73 | run: sudo apt-get install xvfb | ||
74 | - run: npm ci | ||
75 | working-directory: ./editors/code | ||
76 | - run: npm run vscode:prepublish | ||
77 | working-directory: ./editors/code | ||
78 | - run: npm run travis | ||
79 | working-directory: ./editors/code | ||
80 | - name: Cleanup xvfb | ||
81 | uses: bcomnes/cleanup-xvfb@v1 | ||
82 | - name: Prepare build directory for cache | ||
83 | run: | | ||
84 | find ./target/debug -maxdepth 1 -type f -delete && \ | ||
85 | rm -fr ./target/debug/{deps,.fingerprint}/{*ra_*,*heavy_test*,*gen_lsp*,*thread_worker*} && \ | ||
86 | rm -f ./target/.rustc_info.json | ||