[GH-ISSUE #293] Move to Azure Pipelines #235

Closed
opened 2026-05-05 05:45:34 -06:00 by gitea-mirror · 13 comments
Owner

Originally created by @AdrianKoshka on GitHub (Apr 19, 2019).
Original GitHub issue: https://github.com/debauchee/barrier/issues/293

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.

Originally created by @AdrianKoshka on GitHub (Apr 19, 2019). Original GitHub issue: https://github.com/debauchee/barrier/issues/293 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.
Author
Owner

@p12tic commented on GitHub (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.

<!-- gh-comment-id:485062907 --> @p12tic commented on GitHub (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.
Author
Owner

@nelsonjchen commented on GitHub (Apr 20, 2019):

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

https://github.com/Microsoft/azure-pipelines-image-generation/issues/272

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

<!-- gh-comment-id:485146087 --> @nelsonjchen commented on GitHub (Apr 20, 2019): Hmm, Azure Pipelines does not come with QT 5.11 installed by default. https://github.com/Microsoft/azure-pipelines-image-generation/issues/272 I'll keep an eye on that issue for now.
Author
Owner

@AdrianKoshka commented on GitHub (Apr 20, 2019):

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

<!-- gh-comment-id:485189917 --> @AdrianKoshka commented on GitHub (Apr 20, 2019): Can you not just install required packages? fwiw, QT 5.12.x would be better imo.
Author
Owner

@nelsonjchen commented on GitHub (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.

<!-- gh-comment-id:485399100 --> @nelsonjchen commented on GitHub (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](https://github.com/Microsoft/azure-pipelines-artifact-caching-tasks ) 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.
Author
Owner

@AdrianKoshka commented on GitHub (Apr 24, 2019):

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

<!-- gh-comment-id:486272068 --> @AdrianKoshka commented on GitHub (Apr 24, 2019): I like the idea of using the cacheable step as a way to store the QT libs.
Author
Owner

@nelsonjchen commented on GitHub (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.

<!-- gh-comment-id:487330085 --> @nelsonjchen commented on GitHub (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.](https://dev.azure.com/nelsonjchen/Barrier-Container-Debug/_build/results?buildId=194) and [Initial non-cached installation takes about 7 minutes.](https://dev.azure.com/nelsonjchen/Barrier-Container-Debug/_build/results?buildId=193)
Author
Owner

@AdrianKoshka commented on GitHub (Apr 29, 2019):

The caching works

Nice!

<!-- gh-comment-id:487732507 --> @AdrianKoshka commented on GitHub (Apr 29, 2019): > The caching works Nice!
Author
Owner

@nelsonjchen commented on GitHub (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.

<!-- gh-comment-id:489364276 --> @nelsonjchen commented on GitHub (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.
Author
Owner

@nelsonjchen commented on GitHub (May 4, 2019):

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

<!-- gh-comment-id:489364712 --> @nelsonjchen commented on GitHub (May 4, 2019): It *is* open source though. I'll investigate [getting it recompiled](https://stackoverflow.com/questions/9274780/bonjour-dns-sd-on-windows) outside the Bonjour SDK binary.
Author
Owner

@AdrianKoshka commented on GitHub (May 4, 2019):

Thanks a bunch!

<!-- gh-comment-id:489365279 --> @AdrianKoshka commented on GitHub (May 4, 2019): Thanks a bunch!
Author
Owner

@nelsonjchen commented on GitHub (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

<!-- gh-comment-id:489487728 --> @nelsonjchen commented on GitHub (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
Author
Owner

@nelsonjchen commented on GitHub (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.

<!-- gh-comment-id:489488042 --> @nelsonjchen commented on GitHub (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](https://github.com/stammen/dnssd-uwp) 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._
Author
Owner

@AdrianKoshka commented on GitHub (May 6, 2019):

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

<!-- gh-comment-id:489488798 --> @AdrianKoshka commented on GitHub (May 6, 2019): fwiw, 32-bit windows builds aren't needed, it's something that we have had no intention on ever supporting.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/barrier#235
No description provided.