-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch to Azure Pipelines #4461
Conversation
Very cool. Will take a look and let you know if I have any specific feedback, but looking fantastic so far. the templating stuff is definitely the way to go when you are tying to keep things maintainable. While I'm v happy to see you using Pipelines, wanted to make sure you'd seen the latest GitHub Actions announcement? You should recognize a lot of the patterns and YAM syntax from your work with Pipelines so far and find it easy to adopt if it was interesting. If you signed up for the Beta than @ethomson would be a great person for you to work with on the GitHub actions end if that is interesting. Trying to answer some of the questions to be best of my knowledge below:
|
When you set up, did you install Azure Pipelines from the GitHub Marketplace? Then on the "Checks" tab in this PR, you will see each job that ran and can rerun failed ones. You can check by going to Azure Pipelines and clicking "Edit" for your pipeline. If you are not using the Azure Pipelines GitHub app, it will pop up a banner with a one-click that will switch you over. |
Thanks for answering my questions! I'm glad this looks alright to you. As for GitHub Actions, I did this work right before the announcement so it wasn't an option at the time. Though from what I've seen it looks amazing! I think we'll continue with Azure Pipelines for now until it's a bit more fleshed out and the concurrent job limit is raised. Honestly, it's quite comforting GitHub Actions is (roughly) built atop Azure Pipelines, so we know it won't go away anytime soon 😄 Also, we would definitely appreciate any additional runners that could be spared. That is extremely generous, thank you very much!!! Thanks! We did indeed set up the app but I can't find a way to do as you said on non-PR/master jobs like: https://dev.azure.com/ofekmeister/integrations-core/_build/results?buildId=249&view=logs&j=d74967ea-228d-5634-fe5f-5bd874cd0575 |
Oh, outside of PRs, I don't think that feature is implemented. |
We're switching today, thanks very much everyone! |
Hello again everyone! Sorry for the bother but we ran into an issue. We tried to purchase more parallel jobs but they are not getting applied to our public projects (which is our main use case). There is support ticket 119091924002451 open about this. Can one of you please help with this, perhaps @martinwoodward? |
Ah - thanks ofek. Let me dig into that. |
Getting your open source job limit increased to 35. Should be increased soon. |
@martinwoodward Thank you very much for fixing that! So going forward, will more purchases be automatically applied to our public projects or would we have to submit a ticket each time? We plan to buy more either tonight or tomorrow morning since, as anticipated, our queue is still quite large: |
Do you want to drop me a mail with more details? - martinwo@microsoft.com |
Motivation
Consolidate CI providers. To be clear, Azure Pipelines was chosen for this monorepo (and a few other projects) over Travis, AppVeyor, Circle, and Gitlab.
What does this PR do?
Implements 2 pipelines:
Changes
: This triggers on every pull request that does not modify the base package and will always spin up a Linux (Ubuntu 16.04) and Windows (Windows Server 2019) VM. Any modified integrations will be tested on the main platform(s) they support.All
: This triggers on every commit to master or any pull request that modifies the base package and will test every integration in its own runner.Some integrations require additional set up such as the installation of system dependencies. As we only want these extra steps to occur when necessary, there is a
set-up-integrations.yml
template ran for every job that will detect what needs to be done and execute the appropriate scripts in.azure-pipelines/scripts/<integration>
. As integrations may need different set up on different platforms, all scripts live under a directory named after the platform. All scripts in the directory will be executed in lexicographical order.AZP reference entrypoint: https://aka.ms/tfbuild
Future
Changes
(pull request) pipeline by having a single job (probably self-hosted so it starts instantly) that spins up a runner for each changed integration instead of running each sequentially in one (or two) runnersAdditional Notes
Pinging @martinwoodward @willsmythe @johnterickson @brcrista @jeremyepling @chrispat @infin8x since I noticed you helped a few other OSS projects switch (CPython, Rust, etc.). I tried to write idiomatic AZP configuration and made heavy use of templating (kudos btw, it's really powerful). Please let me know if this looks alright to you 😃
I also had a few questions that I couldn't quite find in the docs, maybe you know: