Now that 64bit is a reality, we really need to have the Build Steps enhanced to provide both 32bit and 64bit specific steps. When I build my apps in each version, I have very different background helpers that need to be copied in to the resulting build depending on the platform. Without separate build and CopyFiles Steps for each, things get very convoluted when you’re building for all 6 platforms.
Have you considered triggering the builds externally using the ide communicator?
Thats already been requested
How does this work? I’ve never heard of it - where can I find more info about it?
There is an example project. See: Controlling Xojo from the Command Line
… and it obviates the purpose for the Build Automation steps. Granted, it can be done, but we’re then right back to where we were before Build Automation appeared and I may as well go back to my old, arcane IDEScripts.
Ah! I keep forgetting to check the new docs (developer.xojo.com). Must find time to read it all. Thanks!
Just a note… We now build all of our apps with those “old, arcane IDEScripts” using a continuous delivery system.
So, you’re not eating your own soup, eh :s ?
We are - just different soup
We need to use an IDE build script because it allows more functionality that a single build automation build can
Build automation and IDE scripting are two aspects of automating builds
One more limited in scope than the other
With a script we can do the 6 builds in one pass
Cant do that with a single build automation setup
The only thing that’s changed is that instead of having a human being sitting in front of a computer doing each step, we now have a series of 16 scripts doing it for us on a server in a datacenter.
The way I see building in Xojo is it comes in three levels:
- Building Manually. Developer hits Build and then assembles the final product by hand. We’ve all done that at one time or another, and usually when our products are simple enough or simply in flux.
- Build Automation Steps. Developer hits build and the repeatable steps are done in the IDE. The things that can’t be done in the IDE are done manually (like cross platform installers).
- Continuous Integration. Developer checks a change into their version control system and an automatic build is triggered. Sometime in the not too distant future, a tested, packaged product is ready for delivery without need of human intervention.
It’s a natural progression, and you move from one to the next when your process outgrows the previous one. Until this summer, all of our products were built using levels 1 & 2. We’ve been working fastidiously to get everything moved to level 3, so a human being doesn’t need to babysit the process.
Did you happen to notice how many betas we had in r3, and how quickly they came? That was made possible by our new build process…
FYI I’m not arguing against your feature request. Just giving you an alternative way of doing this that’s available now.
I was realy amazed how many and how fast new beta’s were available, sometimes so fast that i missed one because of living on the other side of the world.
Not that i need such a tool, but i allways am very interested in seeing a thing like that running.
Must be a very smart piece of programming.
That then leads back to a very old fogbugz feature request (I don’t have the original ID but I believe the current ID is 2800) for better documentation of the IDEScripting language and more in-depth examples.
The entire “language” is documented in the PDF “UserGuide-Framework”
There were handful of updates in 2015r3 but we just use that
The latest information on Build Automation and IDE Scripting is in the Dev Center:
There are some IDE Script examples included with Xojo:
- Examples/Advanced/IDE Scripting
And there is an IDE Scripting video:
Take a look at Xojo Format Code (on GitHub by Jeremy Cowgar) for an example of a sophisticated IDE Script.
Okay - that’s a WTF moment for me. When did the “Dev Center” go live and why is it such a well kept secret ?
I guess that I have some “new” digging to do.
When we released iOS
Looks like a number of the entries are either incomplete or out of date.
And others, but I’ve got to get back to my work …
Wow! I think I’m about to learn a lot!
Thanks for sharing this -