Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upSwitch to Azure Pipelines #259
Comments
LegNeato
added
enhancement
tooling
labels
Oct 1, 2018
This comment has been minimized.
This comment has been minimized.
|
Yeah that also is the intention behind #213. 10 parallel runners sounds nice. |
This comment has been minimized.
This comment has been minimized.
kaylangan
commented
Oct 2, 2018
|
I'm a Program Manager on Azure Pipelines. Let me know if you have any questions or suggestions. I'm happy to help! |
This comment has been minimized.
This comment has been minimized.
|
@kaylangan great, thanks! Do you know of any Rust projects currently using Azure Pipelines we could take a look at? |
This comment has been minimized.
This comment has been minimized.
|
@kaylangan I want to have am N*M matrix of jobs, similar to what we have in Travis now (rust version * platform). It doesn't appear we can do that easily? When I do something like: strategy:
matrix:
stable:
rustup_toolchain: stable
beta:
rustup_toolchain: beta
nightly:
rustup_install: nightly
minimum_supported_version_plus_one:
rustup_toolchain: 1.23.0
minimum_supported_version:
rustup_toolchain: 1.22.0
jobs:
- template: _build/job.yml
parameters:
name: macOS
pool:
vmImage: 'macOS-10.13'
- template: _build/job.yml
parameters:
name: Linux
pool:
vmImage: 'Ubuntu-16.04'
- template: _build/job.yml
parameters:
name: Windows
pool:
vmImage: 'vs2017-win2016'I get an error |
This comment has been minimized.
This comment has been minimized.
kaylangan
commented
Oct 3, 2018
|
@LegNeato The parcel-bindler/parcel project might be a good example for how to set this up. They have an azure-pipelines.yml file that lists the jobs across the three OS's. For each of those jobs, they run the azure-pipelines-template.yml template. In the template, they've specified the matrix strategy, and (bonus!) install Rust. |
This comment has been minimized.
This comment has been minimized.
|
@kaylangan Thanks, very helpful! Though for some reason I can't get it to work on windows. I'll keep poking around... |
This comment has been minimized.
This comment has been minimized.
|
A downside is crates.io does not support azure pipelines for the badge key: |
This comment has been minimized.
This comment has been minimized.
LegNeato
self-assigned this
Oct 8, 2018
This comment has been minimized.
This comment has been minimized.
|
I've landed this and made it required to merge PRs. I haven't removed any of the other CI systems yet though. |
added a commit
to LegNeato/juniper
that referenced
this issue
Oct 9, 2018
added a commit
to LegNeato/juniper
that referenced
this issue
Oct 9, 2018
added a commit
that referenced
this issue
Oct 9, 2018
This comment has been minimized.
This comment has been minimized.
|
@LegNeato that's awesome! few things...
@kaylangan any chance you can add friendly mobile ui view support for azure pipelines? I'm trying to see the build log via chrome mobile and it's driving me crazy (focus is jumping alot) |
This comment has been minimized.
This comment has been minimized.
|
@sagiegurari good to know! I'm leaving travis as-is until we can be at feature parity. I'm likely going to patch crates.io. Also, azure pipelines seems to support templates in their own repo, so I am going to add some that people can point to rather than copying and pasting! |
This comment has been minimized.
This comment has been minimized.
|
@kaylangan Another feature request: jobs seem to be triggered in alphabetical order, which means our windows jobs aren't run until the other ones complete due to resource usage. It would be better to randomize the order in which they start. |
This comment has been minimized.
This comment has been minimized.
kaylangan
commented
Oct 9, 2018
@LegNeato thanks for the report--I've filed the bug on our side.
@sagiegurari We've heard asks for mobile views. It's not in the short-term (3-6 month plan), but is on our backlog. It sounds like at a bare minimum, you'd want a mobile view of the logs, yeah?
@LegNeato I'm not sure I fully understand the request. Even if the job order were randomized, the build wouldn't return status until all of the jobs finished. What's the benefit of randomizing the order? |
This comment has been minimized.
This comment has been minimized.
|
@kaylangan sweet, thanks for filing! Re: order, every build triggers 10+ jobs due to the matrix. Because "Windows" is alphabetically last, it doesn't run until there is space in the queue. Usually jobs fail by platform, so we don't see if Windows fails until Mac or Linux jobs completely finish. |
This comment has been minimized.
This comment has been minimized.
kaylangan
commented
Oct 11, 2018
|
@LegNeato I gotcha. We'll need to think a little more about this one. I'm not sure randomization is the solution, but maybe an option to specify order or something like that. Thanks for the feedback! |
This comment has been minimized.
This comment has been minimized.
|
We should look into the new github stuff to see if there are any benefits of switching yet again. |
This comment has been minimized.
This comment has been minimized.
|
So the only thing not working on Azure now is code coverage, right? |
This comment has been minimized.
This comment has been minimized.
|
Correct |
This comment has been minimized.
This comment has been minimized.
|
@LegNeato also what do you think about running Might be a bit annoying for occasional contributors though. |
This comment has been minimized.
This comment has been minimized.
|
in the next cargo-make release (its currently only in the dev branch) adding the CARGO_MAKE_RUN_CHECK_FORMAT env var to your makefile would trigger fmt check as part of the ci flow |
This comment has been minimized.
This comment has been minimized.
|
I'm all for autoformatting / enforcing style. |
This comment has been minimized.
This comment has been minimized.
|
@sagiegurari that's convenient, but I chose to add the check as an extra job on the CI. That way you can see with one glance that the build failed due to formatting: https://dev.azure.com/graphql-rust/GraphQL%20Rust/_build/results?buildId=149 |
This comment has been minimized.
This comment has been minimized.
|
https://internals.rust-lang.org/t/which-ci-platform-should-rust-use/9322 Juniper just got a shoutout as one of the Rust projects using Pipelines. One of you might want to join the discussion and share your experience with using pipelines. |

LegNeato commentedOct 1, 2018
AppVeyor is super flaky.
It looks like https://azure.microsoft.com/en-us/services/devops/pipelines/ supports all platforms and would be really fast:
"Get cloud-hosted pipelines for Linux, macOS, and Windows with unlimited minutes and 10 free parallel jobs for open source"
We could switch to one CI instead of maintaining multiple.