VSTS Windows build agent not Xamarin-enabled? - c#

I am experimenting with VSTS and CI with Xamarin projects. In doing so I have been running an on-premise build agent on my Mac, to observe the files used and emitted during the build process (in the _work sub folder tree). I have also been running a local build agent on my PC, when building the mobile backend (to be deployed to Azure) but when I start a build for the Android project on the Windows on-prem build agent I get this message from VSTS:
There are agents that are capable of running the build, but they are not online. If the agent is configured to run as a service, ensure that the "VSO Agent ({agent name})" service is running.
I have double-checked the build agent is indeed running and connected to VSTS so my conclusion is it is incapable of running the Android build task. Indeed, if I disable that step, the build starts as expected.
So, Is the Windows version of the build agent incapable of building Xamarin projects?
[EDIT]
Some more experimenting tells me this is related to the machine and, possibly, our corporate network. On my Mac I flipped back to a non-corporate local account and joined the open "Guest" network that is not running behind a proxy. This makes the agent available as a "Xamarin capable" agent. I also successfully built both an iOS and Android project this way. But if I switch back to the corporate local account, the agent becomes "Xamarin incapable" again, even if I join the guest network. So, apparently, the agent's capabilities for building Xamarin projects can be affected by the machine's setup. I will investigate further and also bring this to Microsoft to try and figure out what is going on.
Thanks

Related

.NET portable application stops working on windows terminal server until stopped for every user

We deploy our .NET applications (.NET-Framework 4.5.2 and upwards) on a network drive. To explain, we build it in Visual Studio and copy the contents of bin/release. Several users who are connected to different terminal servers of Windows Server 2012 R2, Windows Server 2016 or Windows Server 2019 via RDP run the application. Most of the time it works great, but from time to time the application stops working. Either it doesn't start at all or it crashes at a specific action. The action at which it crashes is always different. After we close the application for all users on the terminal server, it works again without any problems. It looks like all users share the same process and if one crashes, it crashes for everyone.
Is this a known problem and do you have any solutions? For easy and fast update reasons, we cannot install the application directly on the server.

Azure build agent and xamarin.android build

i have a vm on which i installed the lastest version of microsoft visual studio (16.7.3). this machine is intended to be used as a build-agent for azure devops pipelines.
i tried the following.
opened visual studio, download and open the project source, build (releasebuild) the project, archive and sign the apk and install it on the target device (android 7.0) --> this was successful. the app works as expected.
i also installed the build-agent-package (vsts-agent-win-x64-2.170.1.zip) on this machine.
i configured it and it was succesfully registered at the azure devops site.
when i run a build pipeline targetting the same project (releasebuild), the agent generates and signs the apk-package. this apk-package installs on the target device but the app does not start.
this means: no error messages, only a white screen.
i compared the two apks, they differ slightly, the inner folder structure is equal,
but some files have different sizes.
this test runs against the azure devops server 2020 rc2. but i have the same issue
using the tfs 2018 and the corresponding build agent.
could anyone give me some hints how to research this issue?
many thanks in advance
keek

Unable to run selenium in Jenkins [duplicate]

When I run my selenium test (mvn test) from jenkins (windows) I see only the console output. I don't see the real browsers getting opened . How can I configure jenkins so that I can see the browsers running the test?
I had the same problem, i got the solution after many attempts.
This solution works ONLY on windows XP
If you are using jenkins as a windows service you need to do the following :
1) In windows service select the service of jenkins
2) Open properties window of the service -> Logon-> enable the checkbox "Allow service to interact with desktop"
After then you should reboot the service jenkins
Hope this help you :)
UPDATE:
Actually, I'm working on a an automation tool using Selenium on Windows 10, I've installed Jenkins ver. 2.207 as windows application (EXE file), it's running as windows service and ALL drivers (Chrome, FireFox, IE) are visible during test executions WITHOUT performing a mere configuration on the System or Jenkins
I got the solution. I ran jenkins from command prompt as "java -jar jenkins.war" instead of the windows installer version. Now I can see my browser based tests being executed.
If you are already doing what #Sachin suggests in a comment (i.e. looking at the machine where Jenkins actually runs) and still do not see the browsers, then your problem may be the following:
If you run Jenkins as a service in the background it won't open apps in the foreground. You may either try to run it not as a service in the foreground, or run it as a Local System account and check Allow the service to interact with desktop option. In the latter case you may get into permission problems, though.
Update: To make sure this answer is understood properly by others: Jenkins Windows 'native' installation is not really native. It's a wrapper around Java that runs it as a service.
To interact with desktop GUI, you should launch slave agent via JNLP:
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds#Distributedbuilds-LaunchslaveagentviaJavaWebStart
After adding the node in Jenkins (configured as Java Web Start launch), just make a startup batch script on the node machine:
java -jar slave.jar -jnlpUrl http://{Your Jenkins Server}:8080/computer/{Your Jenkins Node}/slave-agent.jnlp
(slave.jar can be downloaded from http://{Your Jenkins Server}:8080/jnlpJars/slave.jar)
See more answers here:
How to run GUI tests on a jenkins windows slave without remote desktop connection?
In the case of Windows 7 you should not install jenkins as windows application (because in this recent version, Microsoft decided to give services their own hidden desktop even you enable the functionality "interact with desktop" in jenkins service), you may have to deploy it from a war file as follows:
1) Download jenkins.war from Jenkins official site
2) Deploy it by the command prompt : java -jar {directoryOfJenkinsFile}/jenkins.war
3) Now you can access jenkins administration on http:// localhost:8080
Hope that helps you !
this is an issue for Jenkins. on Windows it is possible to access logon user's session (screen) under system account. to make the UI testing visible, Jenkins needs to bypass UAC (user access
control) at background. this solution works for me with my own service running as system account.
I also faced the same issue earlier in my local machine (Windows 10).
My test was running perfectly from the NetBeans but when I moved to Jenkins it was only running in console mode. I was unable to view the UI.
So for that, you just need to make your local machine as a Jenkins slave by creating a new slave node in your Jenkins and select that node to execute the Jenkins job.
If jenkins installed by windows installer it is showing only Console out put only. To see browsers download jenkins.war file and run java -jar jenkins.war from command line.
Go through this site:
http://learnseleniumtesting.com/jenkins-and-continuous-test-execution/
If you have the following situation,
You are able to login to the remote machine
You don't see the Jenkins agent window
This slave machine is accessed by many users then try the following,
then try the following suggestion.
Login to slave machine
Go to Task manager
Users
Logout all the users
Then login again.
This worked for me.

Is it possible to deploy multiple versions of a UWP application for a user to run at the same time?

We currently have an internal WPF application that serves the business in different ways for different departments. We have a staged rollout process that takes changes through the following steps:
Development (local)
Alpha testing
Beta testing
Live
Developers need to be able to run all of these versions of the application, and some users access the Beta version to sign off new features.
Currently, this is done through a Launcher application deployed via ClickOnce, which downloads and runs the client binaries for the selected version. Each version of the application is hosted by a corresponding web service on the appropriate server (alpha, beta, live).
Does anyone know how this could be done through UWP? We want to future-proof the application and think about support for surface, windows phone etc. But in all cases, developers and users should be able to access the different versions of the application, sometimes even running them at the same time.
Is there support for this kind of concurrent deployment of multiple versions of the same UWP application?
For development these applications may be installed via powershell. From the AppStore you would only get the latest released version but locally you can do what you want.
The required powershell scripts are provided when you deploy the files to the local file system with visual studio. They will even prompt you to create a local developer key if required for your machine.

Run Azure compute emulator and storage and launch website without visual studio

I'm developing a Windows Azure Web Role. Everything is fine, but in order to launch the site I need to run it from visual studio each and every time and let it start the emulator with the site.
What I would like to do is some how run it independently of visual studio, use visual studio to develop and compile and just refresh the site (as if I was building a regular web project and was hosting it on my local IIS).
Is this possible with the Azure emulator?
Thanks
Yes. There could be a couple of options here. If your web site doesn't need access to the Azure role environment at all (meaning you aren't using RoleEnvironment anywhere in your code and you don't have dependent start up tasks, etc.) you can set it as the start up project and it will run under IIS (or IIS Express if you have that set) outside of the emulator. This is just like what you are used to. There could be some issues here if you need the actual emulated environment for some reason. If you are connecting to the Development storage you should still be okay as long as you ensure the storage emulator is already running (which you can manually start outside of studio either with the command line, or hit the start button and start typing "Windows Azure Storage Emulator - v2.2" until you see it as a choice). The storage emulator runs separate from the compute one and will be listening on the ports it is configured for.
The issue with not running the emulator if it is required is that you need to have the application packaged and deployed. You can directly use the csrun command line tool to spin up a deployment in the emulator. Mike Barlow did a post on it a few months ago: "How-to deploy application to Windows Azure Compute Emulator with CSRUN" Note that the article has you spin up something without VS open, but it still needed to be "packaged" and put in the referenced csx directory.
You may also want to look at the new Express Emulator which is supposed to be a little more stream lined, at least permissions wise, but I can't say if it is any faster or not. I'd consider it beta currently.

Categories

Resources