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
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:
override: true
components: rustfmt, rust-src
- - if: matrix.os == 'ubuntu-latest'
- run: sudo chown -R $(whoami):$(id -ng) ~/.cargo/
-
- - name: Cache cargo registry
- uses: actions/cache@v1
+ - name: Cache cargo directories
+ uses: actions/cache@v2
with:
- path: ~/.cargo/registry
- key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
-
- - name: Cache cargo index
- uses: actions/cache@v1
- with:
- path: ~/.cargo/git
- key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Cache cargo target dir
- uses: actions/cache@v1
+ uses: actions/cache@v2
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
- name: Compile
- run: cargo test --no-run
+ run: cargo test --no-run --locked
- name: Test
run: cargo test
- name: Prepare cache
run: cargo xtask pre-cache
- - name: Prepare cache 2
- if: matrix.os == 'windows-latest'
- run: Remove-Item ./target/debug/xtask.exe, ./target/debug/deps/xtask.exe
+ # Weird targets to catch non-portable code
+ rust-cross:
+ name: Rust Cross
+ runs-on: ubuntu-latest
+
+ env:
+ targets: "powerpc-unknown-linux-gnu x86_64-unknown-linux-musl"
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - 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 }}
+
+ - name: Cache cargo directories
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Check
+ run: |
+ for target in ${{ env.targets }}; do
+ cargo check --target=$target --all-targets
+ done
typescript:
name: TypeScript
strategy:
fail-fast: false
matrix:
- os: [ubuntu-latest, windows-latest, macos-latest]
+ 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; }
- if: runner.os == 'Linux'
- 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