Sikuli with jenkins setup for continuous integration - sikuli

I have my test writtern in Sikuli. If I RDP into my Jenkins machine and have an active session then all sikuli test pass.
However, for overnight run, my Jenkins machine do get locked. I want to understand if anyone has encountered and solved this issue before. Thanks!
Note: I cannot leave my Jenkins slave unlocked due to security reasons.

It's a known limitation of RDP.
Two optional solutions:
install VNC Server (like UltraVNC), and run it as Windows service (make sure it is launched during Windows logon).
OR
Create a batch file that disconnects Remote Desktop, and use it instead of closing the RDP session with the regular X button. The batch command is:
%windir%\system32\tscon.exe %SESSIONNAME% /dest:console

Related

FTP Command Line - "Connection closed by remote host"

I have an Access DB app that exports a table (to XLS) then FTPs to our FTP server over our VPN. This routine has been working for several years, until ~yesterday. I am not sure what could have changed to break this function.
This is not really an Access DB issue as I see the same "Closed Connection" when manually attempting to FTP PUT at the Windows command line. Other users of the Access app (VPN and local) are not seeing this same issue.
I did receive a Win10 Security update this week - possible this affected my firewall settings?
Any suggestions where to begin? Googling suggests to portforward Port 20/21, but this seems to have no effect either.
Thank You!
Note 1: I do use WinSCP for passive transfers for another specific task to FTP to a 3rd party who requires passive transfers. Some of our users in India are unable to use this tool reliably, so I am hesitant to convert this basic function in my Access app as it works everywhere but my local machine.
Note 2: I attempted to add "QUOTE PASV" before a command line transfer with no effect. As I am reading, Windows FTP utility does not support Passive transfers
Note 3: FileZilla can see and transfer to the FTP server using "Plain FTP" mode. Interesting, but I really need this to work via command line without requiring a 3rd part app installation.
Note 4: I uninstalled the Win10 Security Update - No effect

Gnome 3 automatic execution of a script that needs network

my old father is using ubuntu-gnome. He has no static ip address. In order to perform remote administration, I need to know his ip. I was using dyndns free account (configuration in the adsl modem), but this will stop working in a couple of days.
I would like to run a script each time he logs in to publish his ip on my website. I have tried to put a script on the boot, but the network is not available. It seems that it is gnome 3 that starts the network, but I do not know much about gnome 3.
How should I do to have my script run automatically as soon as the network is available ?
One possible non-elegant solution for this is to put your script in his cron to run every X minutes :)
Looking to mine /etc/NetworkManager/ looks like there is a folder dispatcher.d that I think it'll do what you want. Just experiment with a bash/perl/python w/e script in there set the permission appropriately. You can find the UUID in the system-connections/ folder. More information is available in man networkmanager.
EDIT: Look what I found: https://askubuntu.com/questions/13963/call-script-after-connecting-to-a-wireless-network. Seems like this is exactly what you want.
The easiest way is to use another dynamic DNS service. I used to use my own. You could also put curl or wget command to cron or create a systemd service that will call that command periodically. As a target you would have to use your machine with a web server where you can see the IP in your logs.
It is not Gnome that connects the network, it is a system service called NetworkManager. It tries to connect at boot if possible. In some cases it waits for wireless signal, in other cases it waits for a user password. I recently verified that in Fedora, NetworkManager properly implements the systemd's network-online.target but it may have yet to be fixed in other distributions, see the upstream bug report.
https://bugzilla.gnome.org/show_bug.cgi?id=728965
If you want to run a system service just after boot, you need to use:
[Unit]
...
Wants=network-online.target
After=network-online.target
You could also just run a script that calls nm-online at the beginning to wait for the network connectivity if you can expect the connectivity to come up in reasonable time, otherwise it times out. Such a script can be run from any environment including a user session.
And, as noted already, you can put a script into /etc/NetworkManager/dispatcher.d that will be called on any network configuration change and such a script can then filter connection up events and start the notification script.

Windows Store App Cert Kit Fails to Start

The Windows Store App Cert kit fails to start.
Normally the flow is:
Start App Cert Kit
Choose Windows Store Application
Choose App
Choose Certs to Run
Run Certs
Save results
Currently, it fails just before 'Choose App'.
I get this result:
I have tried uninstalling and reinstalling, installed all updates, running appcert.exe reset. All to no avail.
I think it may have to do with the same issue I get with the Windows Store app. I have 38 languages installed (our app supports all of them) and the Windows Store app doesn't like it. I've had to escalate with customer support repeatedly for this, and have not had it resolved properly. I wonder if the same issue applies here.
So I was unable to start the UI, but I was still able to run the appcert by manually calling it on the command line as described here. It worked fine. One thing to note is that between each attempt, make sure to run appcert.exe reset.

How do I capture console output from a remote NSight session?

I have a set of CUDA apps that both write to the console via cout. I have a host machine with VS and NSight plug-in and a target machine with NSight service. However, when I execute the console app, it actually runs on the target machine (literally pops up a console).
So here's the question: how can I get the console to show up on the host and only the GPU stuff to execute on the target? Is this even possible?
Thanks!
The short answer is that it is currently not possible. The application on the target is executed by the Nsight Monitor process but Nsight Monitor currently does not forward the output back to host.
Currently your only option is to take care of it your self by capturing the output of your application on the target and somehow display it on the host.
If this feature is important to you i suggest you file a feature request via your Nvidia developer account.
The CUDA application completely runs on the target machine, so the console or UI for the application will be seen on the target machine only. You can set breakpoints in the GPU code in the VS side (your host machine), and it should break there.
If you feel the application quits too quickly and is not launching the kernels as expected (and you are not hitting the breakpoints), it may be that you have not deployed all the required DLLs on the target machine (e.g. CUDART).

Integration of Selenium Webdriver with Hudson - Unable to open the browser

I have integrated my selenium Webdriver scripts (using TestNG) with Hudson. i invoked my job through ant . My problem is my scripts are not running successfully also the IE browser is not getting opened However Build is creating successfully.
Note -
1) I am triggering build on Hudson from different machine on the same network with administrative access.
2) I have used excel 2007 for developing the script ( data driven framework) however on Hudson server its open office.could that be the issue?
At this moment i am not using selenium grid .please provide any suggestion
The reason for this is because Hudson/Jenkins is running as a Windows service. Recently, Microsoft changed services so that they run on their own invisible desktop. This didn't used to be the case until a few years ago. For this reason, even if you check "interact with desktop" , the desktop that is being referred to is invisble .
So, what you have to do is run Jenkins (not Hudson) as a service only for the master server. For the Selenium tests, you need to run another slave Jenkins server as a foreground shell process and the selenium tests need to be launched from that Jenkins instance instead.
If you think the instructions for setting up a slave are too hard, then you should know that it isn't required that you run as an official configured slave. You can run as a separate slave (make sure port number is different).
Also, if you are running Grids and Nodes on Windows, you might like these scripts I made.