how to check mac machine is busy with some taco build of cordova project on windows machine - macos

My problem is that, I have 3 windows machines and 3 mac machines. I can make build on any mac machine using any windows machine using taco build command. Suppose Mac 1 machine is busy with windows 1 machine for making ios build. if windows 2 machine want to make build on mac 1 it should automatically switch on mac 2 or mac 3. Please let me know how I can do that.

I don't know if there's a great answer to this question. Here's just some suggestions - a couple things to consider:
Load Balancers - if you have the infrastructure in place, you can setup a load balancer to front the multiple different mac build machines. Then, point your windows machines to that load balancer.
Consider a third party solution like http://www.macincloud.com/.
Consider a third party build solution like using VSTS to build your source for IOS. https://msdn.microsoft.com/en-us/library/vs/alm/build/xcode/xcode-projects
Point your individual Windows machines to their own individual mac build machines.

Related

How to manage docker-compose.override.yml file between macOS and Windows?

The situation is that I have three developers working on a project. One developer is on Mac OS X and the other two are on Windows 10 Pro machines. My project consists of .NET Core 3.1 SDK and utilizes docker support to run. It was created in Windows initially so the docker-compose.override.yml file has the following lines of code under Volumes:
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
This works perfectly on Windows environments. However on the Mac OS X side the developer constantly has to update the config of docker-compose.override.yml volumn links to look like the following:
- ~/.microsoft/usersecrets:/root/.microsoft/usersecrets:ro
- ~/.aspnet/https:/root/.aspnet/https:ro
Has anyone ever dealt with a situation like this? What did you do to overcome it besides asking the developer to BootCamp or Virtualize Windows 10 on their Mac?
Update:
I just tried to update the docker-compose.override.yml file to accept the Mac OS X volume lines. I ran it on my Windows machine as well as my Mac OS X machine. It seemed to work properly. I have reached out to my developers to test it out on their machines to see if it will work. Once I get their responses I will update this question.
Update #2:
Looks like my developers on both platforms are able to run the docker-compose project using the Mac OS X Volume lines.
A few options come to mind:
Have the Windows devs use WSL so the paths match Mac OS X
Declare environment variables for each path and reference those in the config
Have an extra compose file that contains the volume declarations but isn't checked into source control so it doesn't get overwritten
I've not done any of these so can't say if there's any pitfalls, but the 2nd and 3rd approaches I have used in the past on non-Docker projects where this kind of scenario occurs.

Understanding how multiple local TeamCity build agents work together

So far I have been using Travis and was quite happy about it (although it only provides Linux environments) however I am considering to give TeamCity a try and work with YouTrack as well. My current scenario is the following:
I have a project that consists of multiple applications and libraries that should are platform independant targeting Windows, macOS and Linux and bundled together for each of those platforms. Everytime I finish a feature branch and merge it to the development branch I need to manually pull the new changes, compile and run test suites on Windows and macOS separately.
I'd like to be able to push changes to the development branch and have the CI tool handle all platforms simultaneously. Therefore I noticed that I can setup an online TeamCity server (for example on DigitalOcean) and have a Linux build agent running besides it while having a Windows build agent on my local desktop computer and a macOS build agent on my (local) Macbook in order to let those machines use the local toolchains native to their systems.
First of all I'd like to know whether this is a feasible setup in general. I considered using Docker images of build agents until I noticed that a Windows build agent only runs on Windows servers and I'd have to configure the container myself with installing msbuild and such. Therefore I considered just using my local machines with their already setup toolchains as build slaves in this case.
Finally, I'd like to know whether TeamCity provides build queues or something similiar. What I am referring to is the following situation: I am on the train and finishing something on my Macbook and merge it into the branch. However my desktop with the Windows build agent is offline at the moment. Does it work through the queued commits/builds once I boot it up again?
Everything in your scenario seems feasible to accomplish with teamcity. You could have a set up with 3 builds all with the same trigger. Each build would have the build steps for a specific operating system. If you had all machines and agents running they would likely all be triggered at the same time and perform their builds in parallel.
I"m not sure what you are trying to say in paragraph 4 about the "windows build agents only runs on windows servers". Windows build agents can run on desktop versions on windows such as windows 7 or windows 10.
Yes, teamcity has a queue. If an agent is offline the build will be held in the queue until the agent is back online or the build is cancelled.

Jenkins windows and mac osx slave on demand

I'm currently testing a software that runs on multiple operating system as windows / Linux and Mac OSX. We are using Jenkins pipeline to perform those actions but on physical jenkins slaves.
I was wondering if there is a way to create MAc osx and Windows slaves on the fly. We are using Docker for the linux version.
For the two other os: we first looked at virtualbox (not maintaned since 4 years) and we are out of options here.
If somebody have an idea here to create slaves on the fly. That will help a lot

How do I create sandbox environments on Mac OSX for running different program / projects?

How do I create sandbox environments on Mac OSX for running different program / projects?
Let me envision a scenario for you. Say, I want to achieve three things from my computer simultaneously:
1) Work on an open source project that requires a particular set of configurations such as GCC4.6, Python 2.6 etc. to run / test etc.
2) Work on another open source project which gives its full functionality when running GCC4.8 or greater, Python 3.x etc. to run / test etc.
3) Listen to iTunes in the background.
Now, configuring the environment for the first two things is not easy and messes things up. What is even more hard is finding an intersection of combinations that can run both.
I achieve this by running VMWare and creating a new virtual machine for each open source project - configuring it to work with the project's requirements. However, this is not scalable. Is there a better way to achieve sandboxing?
I have a 2.53 GHz dual core processor with 16GB memory.
You might try Vagrant: https://www.vagrantup.com/ and install your Virtual Machine and work on that.
Further informations: http://docs.vagrantup.com/v2/why-vagrant/index.html
Hope it can be useful for you.

Icenium / Phonegap Build - how do they create IOS ipa?

I'm currious to know how e.g. Telerik Icenium / Phonegap Build creates IOS ipa files?
Do they use physical mac's for this task or how do they come about this?
Or rephrased: Can I in any way create Cordova ipa files on Windows?
You don't need an actual Mac, just Mac OSX. If you don't feel like buying a mac than you can get a hold of the image of Mac OSX and install it onto your PC using Virtual Machine software. I use VMWare to run MacOSX from my Windows 7 x64 machine.
VM's are a great way to go, the driers can take a bit to setup, but once everything is working it's perfect.
VM's even support ethernet so from within the VM you can browse the web, download mac apps.
Install things like XCode or GameSalad. I suggest researching how to use Virtual Machines.
(I'm part of Icenium team). Yes, we're using physical Mac machine to build your app for iOS.

Resources