]> git.lizzy.rs Git - rust.git/blobdiff - .github/workflows/ci.yaml
Merge #10015
[rust.git] / .github / workflows / ci.yaml
index ec9ef59a88056fd9c64920619ad15f1178f18fba..9c0f3093e1edd3f7107eee3e91285f81351f5f98 100644 (file)
@@ -12,7 +12,7 @@ env:
   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:
@@ -42,52 +42,22 @@ jobs:
       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
 
-    # Work around https://github.com/actions/cache/issues/403 by using GNU tar
-    # instead of BSD tar.
-    - name: Install GNU tar
-      if: matrix.os == 'macos-latest'
-      run: |
-        brew install gnu-tar
-        echo PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH" >> $GITHUB_ENV
-
     - name: Install Rust toolchain
       uses: actions-rs/toolchain@v1
       with:
-        toolchain: 1.49.0   # FIXME: CI is failing on 1.50
+        toolchain: stable
         profile: minimal
         override: true
         components: rustfmt, rust-src
 
-    - name: Install rustfmt
-      uses: actions-rs/toolchain@v1
-      with:
-        toolchain: stable
-        profile: minimal
-        override: false
-        components: rustfmt
-
-    - name: Cache cargo directories
-      uses: actions/cache@v2
-      with:
-        path: |
-          ~/.cargo/registry
-          ~/.cargo/git
-        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
-
-    - name: Cache cargo target dir
-      uses: actions/cache@v2
-      with:
-        path: target
-        key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
+    - name: Cache Dependencies
+      uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
 
     - name: Compile
       run: cargo test --no-run --locked
 
     - name: Test
-      run: cargo test
-
-    - name: Prepare cache
-      run: cargo xtask pre-cache
+      run: cargo test -- --nocapture --quiet
 
   # Weird targets to catch non-portable code
   rust-cross:
@@ -96,6 +66,9 @@ jobs:
 
     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
@@ -109,21 +82,19 @@ jobs:
         override: true
 
     - name: Install Rust targets
-      run: rustup target add ${{ env.targets }}
+      run: rustup target add ${{ env.targets }} ${{ env.targets_ide }}
 
-    - name: Cache cargo directories
-      uses: actions/cache@v2
-      with:
-        path: |
-          ~/.cargo/registry
-          ~/.cargo/git
-        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
+    - name: Cache Dependencies
+      uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
 
     - name: Check
       run: |
         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:
     name: TypeScript