This repository has been archived by the owner on Nov 1, 2024. It is now read-only.
CI #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
schedule: [cron: "40 1 * * *"] | |
jobs: | |
test: | |
name: ${{matrix.name || format('Rust {0}', matrix.rust)}} | |
runs-on: ${{matrix.os || 'ubuntu'}}-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- rust: nightly | |
- rust: beta | |
- rust: stable | |
- rust: 1.48.0 | |
- name: macOS | |
rust: nightly | |
os: macos | |
- name: Windows (gnu) | |
rust: nightly-x86_64-pc-windows-gnu | |
os: windows | |
- name: Windows (msvc) | |
rust: nightly-x86_64-pc-windows-msvc | |
os: windows | |
flags: /EHsc | |
env: | |
CXXFLAGS: ${{matrix.flags}} | |
RUSTFLAGS: --cfg deny_warnings | |
steps: | |
- name: Enable symlinks (windows) | |
if: matrix.os == 'windows' | |
run: git config --global core.symlinks true | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{matrix.rust}} | |
- name: Determine test suite subset | |
# Our Windows and macOS jobs are the longest running, so exclude the | |
# relatively slow compiletest from them to speed up end-to-end CI time, | |
# except during cron builds when no human is presumably waiting on the | |
# build. The extra coverage is not particularly valuable and we can | |
# still ensure the test is kept passing on the basis of the scheduled | |
# builds. | |
if: matrix.os && github.event_name != 'schedule' | |
run: echo "RUSTFLAGS=--cfg skip_ui_tests $RUSTFLAGS" >> $GITHUB_ENV | |
shell: bash | |
- run: cargo run --manifest-path demo/Cargo.toml | |
- run: cargo test --workspace --exclude cxx-test-suite | |
buck: | |
name: Buck | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
java-package: jre | |
- name: Install Buck | |
run: | | |
mkdir bin | |
wget -q -O bin/buck https://jitpack.io/com/github/facebook/buck/a5f0342ae3/buck-a5f0342ae3-java11.pex # dev branch from 2020.10.11 | |
chmod +x bin/buck | |
echo bin >> $GITHUB_PATH | |
- name: Install lld | |
run: sudo apt-get install lld | |
- name: Vendor dependencies | |
run: | | |
cp third-party/Cargo.lock . | |
cargo vendor --versioned-dirs --locked third-party/vendor | |
- run: buck build :cxx#check --verbose=0 | |
- run: buck run demo --verbose=0 | |
- run: buck test ... --verbose=0 | |
bazel: | |
name: Bazel | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Bazel | |
run: | | |
wget -q -O install.sh https://github.com/bazelbuild/bazel/releases/download/4.0.0/bazel-4.0.0-installer-linux-x86_64.sh | |
chmod +x install.sh | |
./install.sh --user | |
echo $HOME/bin >> $GITHUB_PATH | |
- run: bazel run demo --verbose_failures --noshow_progress | |
- run: bazel test ... --verbose_failures --noshow_progress | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: dtolnay/rust-toolchain@clippy | |
- run: cargo clippy --workspace --tests -- -Dclippy::all | |
clang-tidy: | |
name: Clang Tidy | |
runs-on: ubuntu-latest | |
if: github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install clang-tidy | |
run: sudo apt-get install clang-tidy-11 | |
- name: Run clang-tidy | |
run: clang-tidy-11 src/cxx.cc --warnings-as-errors=* |