mirror of
https://github.com/chatmail/core.git
synced 2026-04-27 10:26:29 +03:00
Also fix clippy version to prevent new clippy releases from breaking CI. clippy version has to be updated manually now.
143 lines
3.6 KiB
YAML
143 lines
3.6 KiB
YAML
name: Rust CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- master
|
|
- staging
|
|
- trying
|
|
|
|
env:
|
|
RUSTFLAGS: -Dwarnings
|
|
|
|
jobs:
|
|
|
|
fmt:
|
|
name: Rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: cargo fmt --all -- --check
|
|
|
|
run_clippy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install clippy
|
|
run: rustup toolchain install 1.67.1 --component clippy
|
|
- name: Cache rust cargo artifacts
|
|
uses: swatinem/rust-cache@v2
|
|
- name: Run clippy
|
|
env:
|
|
RUSTUP_TOOLCHAIN: 1.67.1
|
|
run: scripts/clippy.sh
|
|
|
|
docs:
|
|
name: Rust doc comments
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
RUSTDOCFLAGS: -Dwarnings
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v3
|
|
- name: Cache rust cargo artifacts
|
|
uses: swatinem/rust-cache@v2
|
|
- name: Rustdoc
|
|
run: cargo doc --document-private-items --no-deps
|
|
|
|
build_and_test:
|
|
name: Build and test
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# Currently used Rust version.
|
|
- os: ubuntu-latest
|
|
rust: 1.64.0
|
|
python: 3.9
|
|
- os: windows-latest
|
|
rust: 1.64.0
|
|
python: false # Python bindings compilation on Windows is not supported.
|
|
|
|
# Minimum Supported Rust Version = 1.63.0
|
|
#
|
|
# Minimum Supported Python Version = 3.7
|
|
# This is the minimum version for which manylinux Python wheels are
|
|
# built.
|
|
- os: ubuntu-latest
|
|
rust: 1.63.0
|
|
python: 3.7
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
|
|
- name: Install Rust ${{ matrix.rust }}
|
|
run: rustup toolchain install ${{ matrix.rust }}
|
|
- run: rustup override set ${{ matrix.rust }}
|
|
|
|
- name: Cache rust cargo artifacts
|
|
uses: swatinem/rust-cache@v2
|
|
|
|
- name: Check
|
|
run: cargo check --all --bins --examples --tests --benches
|
|
|
|
- name: Tests
|
|
run: cargo test --all
|
|
|
|
- name: Test cargo vendor
|
|
run: cargo vendor
|
|
|
|
- name: Install python
|
|
if: ${{ matrix.python }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: Install tox
|
|
if: ${{ matrix.python }}
|
|
run: pip install tox
|
|
|
|
- name: Build C library
|
|
if: ${{ matrix.python }}
|
|
run: cargo build -p deltachat_ffi --features jsonrpc
|
|
|
|
- name: Run python tests
|
|
if: ${{ matrix.python }}
|
|
env:
|
|
DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
|
|
DCC_RS_TARGET: debug
|
|
DCC_RS_DEV: ${{ github.workspace }}
|
|
working-directory: python
|
|
run: tox -e lint,mypy,doc,py3
|
|
|
|
- name: Build deltachat-rpc-server
|
|
if: ${{ matrix.python }}
|
|
run: cargo build -p deltachat-rpc-server
|
|
|
|
- name: Add deltachat-rpc-server to path
|
|
if: ${{ matrix.python }}
|
|
run: echo ${{ github.workspace }}/target/debug >> $GITHUB_PATH
|
|
|
|
- name: Run deltachat-rpc-client tests
|
|
if: ${{ matrix.python }}
|
|
env:
|
|
DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
|
|
working-directory: deltachat-rpc-client
|
|
run: tox -e py3,lint
|
|
|
|
- name: Install pypy
|
|
if: ${{ matrix.python }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: 'pypy${{ matrix.python }}'
|
|
|
|
- name: Run pypy tests
|
|
if: ${{ matrix.python }}
|
|
env:
|
|
DCC_NEW_TMP_EMAIL: ${{ secrets.DCC_NEW_TMP_EMAIL }}
|
|
DCC_RS_TARGET: debug
|
|
DCC_RS_DEV: ${{ github.workspace }}
|
|
working-directory: python
|
|
run: tox -e pypy3
|