Build Automation

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

Build Automation

Postby EAK » Tue Apr 15, 2008 7:52 am

Does anybody know if it is possible to automatically invoke the building of an executable (.EXE) using command line (scriptable) tools?

Thanks,

EAK
EAK
 
Posts: 4
Joined: Fri Feb 29, 2008 6:31 am

Re: Build Automation

Postby Bob Nemec » Wed Apr 16, 2008 3:09 am

Don't know about a '.exe', but we do automatically build a runtime image each morning for testing. We have a #startUp method in a 'runtime' config map which loads the latest released code. The #startUp methods checks for a command line parameter...

Code: Select all
   (System commandLine anySatisfy: [:each | each sameAs: '-buildRuntime']) ifTrue: [
      [self buildRuntimeImage] fork]

...the method then loads the latest open edition of the application code config map, so that the runtime image has the latest released code. When that's done, the runtime packager is started using our packaging instructions. We took time to make sure no packaging messages come up, so that each morning's build is clean. If it's not, the build stops. We fix the build and rerun the runtime packager. An email is sent to the dev team when the build is done, showing if it finished or if there are packaging messages.

Code: Select all
buildRuntimeImage

   | list edition packagers |

   list := EmConfigurationMap editionsFor: 'our config map name'.
   edition := list detect: [:each | each isEdition] ifNone: [nil].
   edition ifNil: [^Transcript cr; show: Time now displayString; show: ' ... no open edition found'].

   Transcript cr; show: Time now displayString; show: ' ... loading latest config map'.
   edition loadWithTracing: true.
   
   EpPackagerInstructions default: RuntimeImagePackagingInstructions.

   Transcript cr; show: Time now displayString; show: ' ... packaging started'.
   RuntimeImagePackagingInstructions packagerClass
         packageConfigurationMap: edition
         resumableProblemsBrowser: true.

   packagers := RuntimeImagePackagingInstructions packagerClass inMemoryPackagers.
   packagers isEmpty
      ifTrue: [...send email that was successful, copy runtime image to common directory, shut down the image...]
      ifFalse: [...send email notifying the dev team that the build failed, leave image open to fix and re-build]
Bob Nemec
Northwater Capital
Bob Nemec
[|]
 
Posts: 16
Joined: Mon Oct 16, 2006 5:07 am

Re: Build Automation

Postby EAK » Thu Apr 17, 2008 9:58 am

Bob,

Thanks. This gives a starting point.

EAK
EAK
 
Posts: 4
Joined: Fri Feb 29, 2008 6:31 am


Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest