name: CI
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: setup
run: |
rustup install stable-2019-07-04-x86_64-unknown-linux-gnu
rustup component add rustfmt --toolchain stable-2019-07-04-x86_64-unknown-linux-gnu
rustup component add clippy --toolchain stable-2019-07-04-x86_64-unknown-linux-gnu
- name: style
run: cargo fmt -- --check
- name: clippy
run: cargo clippy --all-targets --all-features -- -D warnings
test-os:
runs-on: ${{ matrix.environment }}
strategy:
matrix:
include:
- environment: windows-2019
toolchain: stable-2019-07-04-x86_64-pc-windows-msvc
target: x86_64-pc-windows-msvc
- environment: macos-10.15
toolchain: stable-2019-07-04-x86_64-apple-darwin
target: x86_64-apple-darwin
steps:
- uses: actions/checkout@v2
- name: setup
run: rustup install ${{ matrix.toolchain }}
- name: test
run: cargo test --target ${{ matrix.target }}
test-arch:
runs-on: ubuntu-18.04
strategy:
matrix:
target: [
x86_64-unknown-linux-gnu,
i686-unknown-linux-gnu,
aarch64-unknown-linux-gnu,
powerpc64le-unknown-linux-gnu
]
steps:
- uses: actions/checkout@v2
- name: setup
run: |
# install misc packages
echo "installing misc packages"
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# --
# add docker ppa
echo "adding docker ppa"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
# --
# install docker
echo "installing docker"
sudo apt-get update
sudo apt-get install docker-ce
# --
# configure docker permissions
echo "configuring docker permissions"
sudo usermod -aG docker ${USER}
sudo -u ${USER} /bin/bash
# --
# install cross
echo "installing cross"
cargo +stable install cross
# --
- name: test
run: |
cross test --target ${{ matrix.target }}
RUSTFLAGS="--cfg loom" cross test --target ${{ matrix.target }}