I would like a web interface to run FB scripts and to see the status of currently running and completed scripts.
I’m currently working on a web interface for my build system. It works like this:
I created a MasterBuilder script in FB that can build any product by reading an INI file. The INI file tells it what files to pull out of source control, what version of those files to use (which branch, which changeset), what the expected output is, and where to copy that output to (ie, the release folder for that product).
I can get this MasterBuilder script to build different products (or different configurations of products) by feeding it different INI files.
I have created an SQL database will all the different configuration specifications. I am writing a stored procedure in the SQL that will export an INI file based on a selected configuration.
The MasterBuilder script will pick up that INI file, do the appropriate build(s), and save the results back into a Results table in the SQL database.
So my next step will be to write a web interface to that SQL database, from which I could add/edit a configuration, queue a configuration to be build, or see the results of previously queued configuration build.
Anyway, I hope that gives you some ideas of how to do what it is that you are trying to do.
I already have a set of scripts that do all of that. I do a mixture of Delphi and VS studio work, each script is unique. I have a common pattern (get from source control, compile, build installers, deploy to QA server, email interested parties), but the actual implementation varies depending on the compiler and installer used.
Right now I have a dedicated box for running FinalBuilder, with three teams doing their own builds. We are using Remote Desktop to connect to the build box to be able to start the build process, but it’s running on XP and that limits the remote login to one user at the time. 99% of the time, there are no contention issues, but every now and then we have to modify the scripts and that keeps other teams from starting their builds.
I wanted a web based means of running/monitoring jobs to eliminate the need to remote in just to run a build. AutomatedQA’s build tool has that, but I like FinalBuilder too much to switch for that one feature. I have seen messages on here from VSoft indicated that they are working on this, but that was over 6 months ago.
As an interim solution, I have created some batch files that use Sysinternals’s psexec command to remotely run fbcmd.exe in the context of the user account on the dedicated build box. That works pretty well, but I will want a way to monitor existing builds.
I may code a web site similiar to what you describe. When the web app started a build, it would create batch file that writes a “start” record in a SQL database, then runs fbcmd, then writes the “stop” record. The batch file would be started asynch, using the credentials of the build box account. I would then be able to at least show what build jobs were running, just without any sort of task progress indication. Of course, if I really want that, I could have the FB scripts write SQL records to indicate the status.
Hi Guys
We are still working on the web interface, I expect we will have a “technology preview” version in a few weeks. We still have some work to do to make it a releasable product however what we have at the moment is quite usable so we will make it available as a preview while we complete the feature work.
That sounds great Vincent. If you need a beta tester, I would love to try the new interface.
Hi Guys
We are still working on the web interface, I expect we will have a “technology preview” version in a few weeks. We still have some work to do to make it a releasable product however what we have at the moment is quite usable so we will make it available as a preview while we complete the feature work.
Currently I am in an advanced stage of setting up Anthill Pro 3 to work with FB on windows builds. This will give us much flexibility to have one web interface for java and windows builds.
I already have a set of scripts that do all of that. I do a mixture of Delphi and VS studio work, each script is unique. I have a common pattern (get from source control, compile, build installers, deploy to QA server, email interested parties), but the actual implementation varies depending on the compiler and installer used.
Right now Ihave a dedicated box for running FinalBuilder, with three teams doingtheir own builds. We are using Remote Desktop to connect to the buildbox to be able to start the build process, but it's running on XP andthat limits the remote login to one user at the time. 99% of the time,there are no contention issues, but every now and then we have tomodify the scripts and that keeps other teams from starting theirbuilds.
Asan interim solution, I have created some batch files that useSysinternals's psexec command to remotely run fbcmd.exe in the contextof the user account on the dedicated build box. That works prettywell, but I will want a way to monitor existing builds.
Iterate INI section
--Try
----Set Variable Step="Get Source"
----Get Source
----Set Variable Step="Build Product"
----Build Product
----Set Variable Step="Copy Output to Release"
----Copy Output to Release
----Write to log: Build Successful
--Catch
----Write to log: Build Failure during step: "%STEP%"
--End
Iterate next ...
This gives me not only a simplified pass/fail for each component, but gives me a clue as to where a component failed. It's much easier than digging through that 6MB HTML log file!
I maycode a web site similiar to what you describe. When the web appstarted a build, it would create batch file that writes a "start"record in a SQL database, then runs fbcmd, then writes the "stop"record. The batch file would be started asynch, using the credentialsof the build box account. I would then be able to at least show whatbuild jobs were running, just without any sort of task progressindication. Of course, if I really want that, I could have the FBscripts write SQL records to indicate the status.
It’s even simpler than that. I’m using psexec and it’s handling all of the login credentials, there’s no session to deal with. I have a set of batch files that can be invoked by any developer from any machine. Concurrent job execution works just fine, just obviously slower.
To solve the login problem, you could always use telent or cygwin or something like that.