SRL Archive - Development

New, improved, automated build system - Jenkins


moparisthebest

2011-10-12 21:42:22

I have ditched my custom autobuild shell script in favor of what I think is a better system, Jenkins.

I have also updated my lazarus and FPC to the current version Wizzup? told me to use.

You can access the entire thing here:

http://www.moparisthebest.com/jenkins/

In addition to Simba Stable (master branch), I also build simba-next and lape-integration. You may also notice that I also automatically build SMART as well whenever benland commits a new version.

Instead of testing to see if there is a new version of Simba periodically, Wizzup? has set up a git callback, so a new build is triggered instantly whenever anyone commits to the Simba repo.

You can always find the latest version of Simba for all supported operating systems here:

Stable (git master branch):
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/
Unstable (git simba-next branch, bleeding edge, may or may not have bugs):
http://www.moparisthebest.com/jenkins/job/Simba_Next/lastSuccessfulBuild/
Lape Integration (finally an attempt at a cross-platform script engine):
http://www.moparisthebest.com/jenkins/job/Simba_Lape/lastSuccessfulBuild/

If you don't know what to download, you will want this one:
Installer:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/SimbaInstaller.i386-win32.exe
7zip archive:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/Simba.i386-win32.7z

These are built automatically when changes are made and are triggered by a git post-commit hook from github.

Here is a description of the windows installers:
SimbaInstaller.i386-win32 - For 32-bit windows, if you are unsure, this is what you want.
SimbaInstaller.x86_64-win64 - For 64-bit windows, scripting engine doesn't work for this yet.

Here is a description of the 7zip archive files:
Simba.i386-win32 - For 32-bit windows, if you are unsure, this is what you want.
Simba.x86_64-win64 - For 64-bit windows, scripting engine doesn't work for this yet.
Simba.i386-linux - For 32-bit Linux, if you run Linux, you probably want this one.
Simba.x86_64-linux - For 64-bit Linux.

Simba.all-in-one - If you run multiple operating systems, this is the package for you, it contains all 4 of the above binaries in it, so you can run it from the same folder without rebooting into a particular OS.

You need the free utility 7zip to extract the above files, simply extract the entire archive into a folder and run Simba from there.

The files linked to above are from the master branch and should be stable. Have fun!

If you want the 'official' stable version (currently Win32 only) then go here:
http://wizzup.org/simba/

If you would like to look at the source code of Simba, refer to the git repo here:
https://github.com/MerlijnWajer/Simba

If you have any comments, questions, or suggestions, let me know.

Main

2011-10-12 21:55:19

Good job!@!
Can't wait for lape!@
Ran it for 5 min, no crashing so far:P

EDIT: 2 hours and so far so good:P

Coh3n

2011-10-12 22:06:52

From: moparisthebest

Instead of testing to see if there is a new version of Simba periodically, Wizzup? has set up a git callback, so a new build is triggered instantly whenever anyone commits to the Simba repo.
Nice. :) Wizzup, couldn't the same thing be done for the extension updaters we have?

moparisthebest

2011-10-12 23:32:38

Extension updaters? Do they need built and/or included in Simba? If so, link me to some instructions or repos or something.

chitin

2011-10-12 23:34:26

im confused is this a simba update system?:redface:
like an svn? or just a different repo?

Coh3n

2011-10-12 23:46:11

From: moparisthebest
Extension updaters? Do they need built and/or included in Simba? If so, link me to some instructions or repos or something.
They're extensions that automatically update the SRL/Reflection and MSI includes. Currently, there is up to an hour delay after a commit to github, meaning users may get the update an hour late. Not really a huge deal, but if it can be done as soon as a commit is made, we may as well do that.

Wizzup?

2011-10-13 06:02:42

From: Main
Good job!@!
Can't wait for lape!@
Ran it for 5 min, no crashing so far:P

EDIT: 2 hours and so far so good:P


You're probably still using Pascalscript, you have to select Lape from the Interpreter (sub)menu. And I'm not sure if SRL even compiles with it right now?

From: Coh3n
Nice. :) Wizzup, couldn't the same thing be done for the extension updaters we have?


Yes, I suppose we can. I didn't know about the existence before. But then again, it would take some time.

From: chitin
im confused is this a simba update system?:redface:
like an svn? or just a different repo?


To use Simba, it has to be compiled from source code. The stable release of Simba if often a bit outdated (but tested) version. This system builds Simba as soon as there is a change; allowing you to use ``untested'' software.
I'd like to state that the Lape-integration branch really isn't done yet, so don't expect stuff like code hints or completion. Simba-next may be stable; it is the Simba with the complete find* functions rewrite. I've been wanting to finish writing the tests before I released the first -rc.

moparisthebest

2011-10-13 23:55:09

I just hacked up support to also automatically produce the windows installer that Wizzup usually provides:

Win32:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/SimbaInstaller.i386-win32.exe

But I also create an installer for the 64-bit windows version:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/SimbaInstaller.x86_64-win64.exe

Also shame on Wizzup (joking :p) for using a closed-source, windows-only windows installer generator. Here is how I do it on Linux (actually it is pretty easy after writing the script, so don't change now and make more work for me! :)):
http://www.moparisthebest.com/downloads/old_simba/make_tools/iss.sh

@Wizzup, I notice it doesn't include quite a few things, like no test scripts, no fonts, no plugins, do you want to change it to do that? If so, I use your Setup.iss (that is the right file, right?), so just make the changes, push the commit, and the build will use it automatically.

I'd like someone on windows to actually test the installer to make sure it works just like Wizzup's and report back, if you would, thanks in advance. :D

Wizzup?

2011-10-14 16:23:17

From: moparisthebest
I just hacked up support to also automatically produce the windows installer that Wizzup usually provides:

Win32:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/SimbaInstaller.i386-win32.exe

But I also create an installer for the 64-bit windows version:
http://www.moparisthebest.com/jenkins/job/Simba_Stable/lastSuccessfulBuild/artifact/SimbaInstaller.x86_64-win64.exe

Also shame on Wizzup (joking :p) for using a closed-source, windows-only windows installer generator. Here is how I do it on Linux (actually it is pretty easy after writing the script, so don't change now and make more work for me! :)):
http://www.moparisthebest.com/downloads/old_simba/make_tools/iss.sh

@Wizzup, I notice it doesn't include quite a few things, like no test scripts, no fonts, no plugins, do you want to change it to do that? If so, I use your Setup.iss (that is the right file, right?), so just make the changes, push the commit, and the build will use it automatically.

I'd like someone on windows to actually test the installer to make sure it works just like Wizzup's and report back, if you would, thanks in advance. :D


Cool, although I think the Windows x64 build didn't even start last time I checked, but this is not important.

As for the installer, it wasn't my idea. :( Still, it works™, so I'm not too eager to change it atm. The files in Setup.iss should be all you want to ship, everything else is installed by Extensions (which won't work _yet_ on Linux).

moparisthebest

2011-10-14 20:58:03

Ok, well I guess the reason I ship everything else in the 7zip archives is because of the multiple platform support, I know you don't compile SMART for example for anything but win32, so that is why they come with plugins. So I suppose you are right, the installer for windows doesn't need all that stuff.

As to the installer program, that's just some good natured ribbing on my part, I'm just playing with you. Honestly, the program runs great with no errors at all under WINE, and has a command-line only mode which is of course needed for automated builds. So actually I'd prefer you didn't change, because then I'd have to write more code. :)

Anyway, is there any other way I could improve the system? In case you haven't figured it out, I'm trying to make your life easier so you don't have to compile/package/distribute anything anymore. :) (plus make my life easier, so I don't have to compile/package/distribute to test it on Linux…)

Probably in the somewhat near future, I'll give compiling for OSX ppc and i386 a shot, I can already do it with gcc and g++ (so probably SMART?), I suppose since I already have all the libraries (the hardest part) that compiling FPC for it shouldn't be too much harder. It would be nice to give the OSX guys something to test too, and it should work the same as the Linux version, which will hopefully be perfectly after Lape is finished. (speaking of which, any ETA on that? :p)