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