matrix-rust-sdk/.github/workflows/ci.yml

273 lines
7.2 KiB
YAML
Raw Normal View History

name: CI
2020-12-08 09:42:05 +00:00
on:
push:
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
style:
name: Check style
2020-12-08 09:42:05 +00:00
runs-on: ubuntu-latest
steps:
2020-12-08 10:08:41 +00:00
- name: Checkout the repo
uses: actions/checkout@v2
2020-12-08 10:08:41 +00:00
- name: Install rust
uses: actions-rs/toolchain@v1
2020-12-08 09:42:05 +00:00
with:
2021-05-12 17:20:52 +00:00
toolchain: nightly
components: rustfmt
profile: minimal
override: true
2020-12-08 09:42:05 +00:00
2020-12-08 10:08:41 +00:00
- name: Cargo fmt
uses: actions-rs/cargo@v1
2020-12-08 09:42:05 +00:00
with:
command: fmt
2020-12-08 09:44:19 +00:00
args: --all -- --check
2020-12-08 09:42:05 +00:00
clippy:
name: Run clippy
needs: [style]
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
profile: minimal
override: true
2020-12-08 10:08:41 +00:00
- name: Clippy
uses: actions-rs/cargo@v1
2020-12-08 09:42:05 +00:00
with:
command: clippy
args: --workspace --exclude matrix-sdk-appservice --all-targets -- -D warnings
2020-12-08 10:36:01 +00:00
- name: Clippy without default features
uses: actions-rs/cargo@v1
with:
command: clippy
# TODO: add `--all-targets` once all warnings in examples are resolved
args: --workspace --exclude matrix-sdk-appservice --no-default-features --features native-tls -- -D warnings
2021-03-23 10:56:43 +00:00
check-wasm:
name: linux / WASM
2021-03-23 10:56:43 +00:00
needs: [clippy]
2021-03-23 11:02:32 +00:00
runs-on: ubuntu-latest
2021-03-23 10:56:43 +00:00
steps:
- name: Checkout the repo
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
2021-03-23 10:56:43 +00:00
profile: minimal
override: true
2021-03-23 11:43:38 +00:00
- name: Install emscripten
uses: mymindstorm/setup-emsdk@v7
2021-03-23 10:56:43 +00:00
- name: Check
2021-03-23 11:26:46 +00:00
run: |
cd matrix_sdk/examples/wasm_command_bot
2021-03-23 11:31:17 +00:00
cargo check --target wasm32-unknown-unknown
2021-03-23 10:56:43 +00:00
test-appservice:
name: ${{ matrix.name }}
needs: [clippy]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
matrix:
name:
2021-06-03 16:20:07 +00:00
- linux / appservice / stable / actix
- macOS / appservice / stable / actix
- windows / appservice / stable-x86_64-msvc / actix
- linux / appservice / stable / warp
- macOS / appservice / stable / warp
- windows / appservice / stable-x86_64-msvc / warp
include:
2021-06-03 16:20:07 +00:00
- name: linux / appservice / stable / actix
cargo_args: --features actix
2021-06-03 16:20:07 +00:00
- name: macOS / appservice / stable / actix
os: macOS-latest
2021-06-03 16:20:07 +00:00
cargo_args: --features actix
- name: windows / appservice / stable-x86_64-msvc / actix
os: windows-latest
target: x86_64-pc-windows-msvc
cargo_args: --features actix
- name: linux / appservice / stable / warp
cargo_args: --features warp
- name: macOS / appservice / stable / warp
os: macOS-latest
cargo_args: --features warp
- name: windows / appservice / stable-x86_64-msvc / warp
os: windows-latest
target: x86_64-pc-windows-msvc
cargo_args: --features warp
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust || 'stable' }}
target: ${{ matrix.target }}
profile: minimal
override: true
- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
2021-06-03 16:20:07 +00:00
args: --manifest-path matrix_sdk_appservice/Cargo.toml ${{ matrix.cargo_args }} -- -D warnings
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
2021-06-03 16:20:07 +00:00
args: --manifest-path matrix_sdk_appservice/Cargo.toml ${{ matrix.cargo_args }}
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
2021-06-03 16:20:07 +00:00
args: --manifest-path matrix_sdk_appservice/Cargo.toml ${{ matrix.cargo_args }}
2021-04-12 19:05:07 +00:00
test-features:
name: ${{ matrix.name }}
needs: [clippy]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
matrix:
name:
- linux / features-no-encryption
- linux / features-no-sled
- linux / features-no-encryption-and-sled
- linux / features-sled_cryptostore
- linux / features-rustls-tls
- linux / features-markdown
- linux / features-socks
- linux / features-sso_login
- linux / features-require_auth_for_profile_requests
2021-04-12 19:05:07 +00:00
include:
- name: linux / features-no-encryption
cargo_args: --no-default-features --features "sled_state_store, native-tls"
- name: linux / features-no-sled
cargo_args: --no-default-features --features "encryption, native-tls"
- name: linux / features-no-encryption-and-sled
cargo_args: --no-default-features --features "native-tls"
- name: linux / features-sled_cryptostore
cargo_args: --no-default-features --features "encryption, sled_cryptostore, native-tls"
- name: linux / features-rustls-tls
cargo_args: --no-default-features --features rustls-tls
- name: linux / features-require_auth_for_profile_requests
cargo_args: --no-default-features --features "require_auth_for_profile_requests, native-tls"
2021-04-12 19:05:07 +00:00
- name: linux / features-markdown
cargo_args: --features markdown
- name: linux / features-socks
cargo_args: --features socks
- name: linux / features-sso_login
cargo_args: --features sso_login
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust || 'stable' }}
target: ${{ matrix.target }}
profile: minimal
override: true
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --manifest-path matrix_sdk/Cargo.toml ${{ matrix.cargo_args }}
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path matrix_sdk/Cargo.toml ${{ matrix.cargo_args }}
2020-12-08 10:36:01 +00:00
test:
name: ${{ matrix.name }}
needs: [clippy]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
matrix:
name:
- linux / stable
- linux / beta
- macOS / stable
include:
- name: linux / stable
- name: linux / beta
rust: beta
- name: macOS / stable
os: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust || 'stable' }}
target: ${{ matrix.target }}
profile: minimal
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --workspace --exclude matrix-sdk-appservice
2020-12-08 10:36:01 +00:00
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --workspace --exclude matrix-sdk-appservice