juniper/.github/workflows/ci.yml

151 lines
3.4 KiB
YAML

name: CI
on: [pull_request, push]
jobs:
###################################################
# Formatting
###################################################
format:
name: Check formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
profile: minimal
override: true
- name: Run rustfmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
###################################################
# Main Builds
###################################################
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
rust: [stable, beta, nightly]
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: davidB/rust-cargo-make@v1
with:
version: '0.20.0'
- name: Build and run tests
env:
CARGO_MAKE_RUN_CODECOV: true
run: |
cargo make workspace-ci-flow --no-workspace
###################################################
# WASM Builds
###################################################
wasm:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
profile: minimal
override: true
- name: Check
uses: actions-rs/cargo@v1
with:
command: check
args: --target wasm32-unknown-unknown --package juniper --package juniper_codegen
###################################################
# Releases
###################################################
#release:
# name: Check release automation
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# with:
# fetch-depth: 20
# - name: Install rust
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# override: true
# - uses: davidB/rust-cargo-make@v1
# with:
# version: '0.20.0'
# - name: Install cargo-release
# uses: actions-rs/cargo@v1
# with:
# command: install
# args: --version=0.19.4 cargo-release
# - name: Setup git
# run: |
# git config --global user.email "juniper@example.com"
# git config --global user.name "Release Test Bot"
# - name: Dry run mode
# env:
# RELEASE_LEVEL: minor
# run: |
# cargo make release-dry-run
# - name: Local test mode
# env:
# RELEASE_LEVEL: minor
# run: |
# cargo make release-local-test
# - name: Echo local changes
# run: |
# git --no-pager log -p HEAD...HEAD~20
# - name: Run tests
# run: |
# cargo make workspace-ci-flow --no-workspace