Skip to content
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

Move to Azure Pipelines #293

Closed
AdrianKoshka opened this issue Apr 19, 2019 · 13 comments

Comments

Projects
None yet
3 participants
@AdrianKoshka
Copy link
Member

commented Apr 19, 2019

It was suggested in #250, that we could move to Azure Pipelines as solution to building on all three platforms under one roof. @nelsonjchen originally suggested this.

@p12tic

This comment has been minimized.

Copy link

commented Apr 20, 2019

It would be great to have that. I think it's worthwhile to keep travis running, because you never know what issues a CI provider has, so if one starts to have e.g. stability issues then at least it does not block the PRs from being tested.

@nelsonjchen

This comment has been minimized.

Copy link

commented Apr 20, 2019

Hmm, Azure Pipelines does not come with QT 5.11 installed by default.

microsoft/azure-pipelines-image-generation#272

I'll keep an eye on that issue for now.

@AdrianKoshka

This comment has been minimized.

Copy link
Member Author

commented Apr 20, 2019

Can you not just install required packages? fwiw, QT 5.12.x would be better imo.

@nelsonjchen

This comment has been minimized.

Copy link

commented Apr 22, 2019

I can, I just want to make sure we install it fast without a huge burden to download. Windows Travis CI users faced similar issues where QT is not installed and they have to install it themselves. Some things I've seen:

  • Wireshark - They just use the online installer. Problem is, there's no way to pin versions with this. They have to constantly target the latest stable. Stuff isn't pinned at all. Egh!
  • Rstudio - They download from their own hosting a packaging of the QT tools. Meh.

My idea is to download and use the 3.7GB silent installer in a cacheable step with Azure Pipeline's currently-in-preview caching functionality to install only what we need and then cache it. I've experimented with some of this automation in a temporary Windows Docker container just for development and I'll see if I can port it to raw Azure Pipelines soon. This approach can definitely be done for the other supported OSes too.

@AdrianKoshka

This comment has been minimized.

Copy link
Member Author

commented Apr 24, 2019

I like the idea of using the cacheable step as a way to store the QT libs.

@nelsonjchen

This comment has been minimized.

Copy link

commented Apr 28, 2019

I was able to get Azure Pipelines to cache QT in a test project! 🎆

Caching is still a bit rough around the edges and when things are accepted, the artifacts functionality will need to be enabled and a feed will need to be created. It's a bit weird since Artifacts falls under the free small teams part and not the Open Source part of Azure pipelines where things can and are forced to be publicly view-able. It's still free though.

The caching works!

Restoring the cache is 41 seconds. and Initial non-cached installation takes about 7 minutes.

@AdrianKoshka

This comment has been minimized.

Copy link
Member Author

commented Apr 29, 2019

The caching works

Nice!

@nelsonjchen

This comment has been minimized.

Copy link

commented May 4, 2019

I'm now trying to figure out how to get the Apple Bonjour SDK. It's behind a registration wall though and there doesn't seem to be a way to install it through choco or some package manager. I've seen some projects do the same thing for Qt where they self-host just that part.

@nelsonjchen

This comment has been minimized.

Copy link

commented May 4, 2019

It is open source though. I'll investigate getting it recompiled outside the Bonjour SDK binary.

@AdrianKoshka

This comment has been minimized.

Copy link
Member Author

commented May 4, 2019

Thanks a bunch!

@nelsonjchen

This comment has been minimized.

Copy link

commented May 6, 2019

Forked Kodi/XBMC's mDNSResponder fork which contains a CMake build instructions of that DNSSD library and can build on Windows.

Built a pipeline and took a look at what some of the options are.

I still need to polish up the pipeline there and I'll do more later. I'll be making barrier's build depend on files from GitHub releases.

https://github.com/nelsonjchen/mDNSResponder/releases

@nelsonjchen

This comment has been minimized.

Copy link

commented May 6, 2019

We'll still need to ask users to install that stupid Bonjour service for 7-8.1. For Windows 10, a Microsoftie unofficially made some sample code to expose DNSSD from UWP to Win32 but left it unsupported. Anyway, this is a way later project/issue.

At a recent LAN Party, I was amused to find the latest version of Starcraft, both original graphics and remaster, required Apple Bonjour to be installed for LAN party discovery.

@AdrianKoshka

This comment has been minimized.

Copy link
Member Author

commented May 6, 2019

fwiw, 32-bit windows builds aren't needed, it's something that we have had no intention on ever supporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.