Set up CI with Azure Pipelines (#263)

This commit is contained in:
Christian Legnitto 2018-10-08 14:45:49 -07:00 committed by GitHub
parent 95efe3821c
commit 592060d3f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 71 additions and 20 deletions

View file

@ -1,21 +1,20 @@
<img src="https://github.com/graphql-rust/juniper/raw/master/assets/logo/juniper-dark-word.png" alt="Juniper" width="500" />
> GraphQL server library for Rust
[![Build Status](https://travis-ci.org/graphql-rust/juniper.svg?branch=master)](https://travis-ci.org/graphql-rust/juniper)
[![Build status](https://ci.appveyor.com/api/projects/status/xav6tor6biu617uu?svg=true)](https://ci.appveyor.com/project/theduke/juniper)
[![Build Status](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_apis/build/status/graphql-rust.juniper)](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_build/latest?definitionId=1)
[![codecov](https://codecov.io/gh/graphql-rust/juniper/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql-rust/juniper)
[![Crates.io](https://img.shields.io/crates/v/juniper.svg?maxAge=2592000)](https://crates.io/crates/juniper)
[![Gitter chat](https://badges.gitter.im/juniper-graphql/gitter.png)](https://gitter.im/juniper-graphql)
---
[GraphQL][graphql] is a data query language developed by Facebook intended to
serve mobile and web application frontends.
*Juniper* makes it possible to write GraphQL servers in Rust that are
_Juniper_ makes it possible to write GraphQL servers in Rust that are
type-safe and blazingly fast. We also try to make declaring and resolving
GraphQL schemas as convenient as possible as Rust will allow.
@ -24,10 +23,9 @@ make integration with existing servers straightforward. It optionally provides a
pre-built integration for the [Hyper][hyper], [Iron][iron], [Rocket], and [Warp][warp] frameworks, including
embedded [Graphiql][graphiql] for easy debugging.
* [Cargo crate](https://crates.io/crates/juniper)
* [API Reference][docsrs]
* [Book][book]: Guides and Examples
- [Cargo crate](https://crates.io/crates/juniper)
- [API Reference][docsrs]
- [Book][book]: Guides and Examples
## Getting Started
@ -45,7 +43,6 @@ schema including polymorphism with traits and interfaces.
For an example of web framework integration,
see the [hyper][hyper_examples], [rocket][rocket_examples], [iron][iron_examples], and [warp][warp_examples] examples folders.
## Features
Juniper supports the full GraphQL query language according to the
@ -66,21 +63,20 @@ Juniper has automatic integration with some very common Rust crates to make
building schemas a breeze. The types from these crates will be usable in
your Schemas automatically.
* [uuid][uuid]
* [url][url]
* [chrono][chrono]
- [uuid][uuid]
- [url][url]
- [chrono][chrono]
### Web Frameworks
* [hyper][hyper]
* [rocket][rocket]
* [iron][iron]
* [warp][warp]
- [hyper][hyper]
- [rocket][rocket]
- [iron][iron]
- [warp][warp]
## Guides & Examples
* [Juniper + actix-web example](https://github.com/actix/examples/tree/master/juniper)
- [Juniper + actix-web example](https://github.com/actix/examples/tree/master/juniper)
## API Stability
@ -95,14 +91,13 @@ Juniper has not reached 1.0 yet, thus some API instability should be expected.
[hyper_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_hyper/examples
[rocket_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_rocket/examples
[iron_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_iron/examples
[Hyper]: https://hyper.rs
[Rocket]: https://rocket.rs
[hyper]: https://hyper.rs
[rocket]: https://rocket.rs
[book]: https://graphql-rust.github.io
[book_quickstart]: https://graphql-rust.github.io/quickstart.html
[docsrs]: https://docs.rs/juniper
[warp]: https://github.com/seanmonstar/warp
[warp_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_warp/examples
[uuid]: https://crates.io/crates/uuid
[url]: https://crates.io/crates/url
[chrono]: https://crates.io/crates/chrono

View file

@ -0,0 +1,41 @@
jobs:
- job: ${{ parameters.name }}
pool:
vmImage: ${{ parameters.vmImage }}
strategy:
matrix:
stable:
rustup_toolchain: stable
beta:
rustup_toolchain: beta
nightly:
rustup_toolchain: nightly
minimum_supported_version_plus_one:
rustup_toolchain: 1.23.0
minimum_supported_version:
rustup_toolchain: 1.22.0
steps:
- ${{ if ne(parameters.name, 'Windows') }}:
# Linux and macOS.
- script: |
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUSTUP_TOOLCHAIN
echo "##vso[task.setvariable variable=PATH;]$PATH:$HOME/.cargo/bin"
displayName: Install rust
- ${{ if eq(parameters.name, 'Windows') }}:
# Windows.
- script: |
curl -sSf -o rustup-init.exe https://win.rustup.rs
rustup-init.exe -y --default-toolchain %RUSTUP_TOOLCHAIN%
set PATH=%PATH%;%USERPROFILE%\.cargo\bin
echo "##vso[task.setvariable variable=PATH;]%PATH%;%USERPROFILE%\.cargo\bin"
displayName: Install rust (windows)
# All platforms.
- script: |
rustc -Vv
cargo -V
displayName: Query rust and cargo versions
- script: cargo install -f cargo-make
displayName: Install cargo-make
- script: cargo make workspace-ci-flow --no-workspace
env: { CARGO_MAKE_RUN_CODECOV: true }
displayName: Build and run tests

15
azure-pipelines.yml Normal file
View file

@ -0,0 +1,15 @@
jobs:
- template: _build/azure-pipelines-template.yml
parameters:
name: macOS
vmImage: macOS-10.13
- template: _build/azure-pipelines-template.yml
parameters:
name: Linux
vmImage: ubuntu-16.04
- template: _build/azure-pipelines-template.yml
parameters:
name: Windows
vmImage: vs2017-win2016