name: CI on: release: types: [created] push: schedule: # Runs every Thursday at 20:23 GMT to avoid bit rot - cron: "20 23 * * 4" jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Install latest nightly uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - name: Lint with rustfmt uses: actions-rs/cargo@v1 with: command: fmt - name: Lint with clippy uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets --all-features build: runs-on: ${{ matrix.os }} needs: lint strategy: fail-fast: false matrix: python-version: [3.5, 3.6, 3.7, 3.8] os: [ubuntu-latest, macos-latest, windows-latest] exclude: # There is a known issue where Python C extensions # can not be built on Python 3.5 on Windows. # https://github.com/actions/virtual-environments/issues/34 # Therefore, ujson can't be compiled and the build would fail. - os: windows-latest python-version: 3.5 steps: - name: Checkout uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry poetry install - name: Install latest nightly uses: actions-rs/toolchain@v1 with: toolchain: nightly override: true - name: Build Python package run: poetry run maturin develop --release