Shell Buildscript for Kongregate Deploy – Teil 2 / 3

Lest im 1. Teil, welche Vorbereitungen unser Script durchführt.

Im zeiten Teil geht es darum die .js Files zu minimieren. Im Beispiel von Starback Planetdestroyer sind es ziemlich viele Javascript Dateien. Die werden alle in einer großen Datei

  1. konkateniert (simples append) und
  2. minimiert

Hier zeige ich, wie ich das gemacht habe.

Source-Datein konkatenieren

set CONCATED_JSFILE=%ARTIFACTS_FOLDER%\game_%TIMESTAMP%_%BUILD_NUMBER%.js
set MIN_JSFILE_NAME=game_%TIMESTAMP%_%BUILD_NUMBER%.min.js
set MIN_JSFILE=%DEPLOY_FOLDER%\%MIN_JSFILE_NAME%
@echo  -- Javascript-files concatenated in '%CONCATED_JSFILE%' >> %LOGFILE%
echo. 2>%CONCATED_JSFILE%
for /r "%DEPLOY_FOLDER%\js\" %%F in (*.js) do (
  @echo     %%F >> %LOGFILE%
  type %%F >> %CONCATED_JSFILE%
)

Ihr könnt erkennen, dass es zwei .js files geben wird: CONCATED_JSFILE und MIN_JSFILE.  Im ersten Teil hatte ich erwähnt, das zum besseren Fehler finden, eine nicht minimiere Version vorliegt. Die findet ihr im ARTIFACTS_FOLDER. Die minimierte version werded ihr direkt im
DEPLOY_FOLDER finden.

Die markierten Zeilen sind der Knackpunkt hier. Zeile 39 erstellt eine leere Datei, nachdem im ersten Teil alles gelöscht wurde. Das Script geht alle Verzeichnisse rekursiv durch (Zeile 40) und fügt die .js files ans Ende unserer leeren Datei an (Zeile 42).

Die anderen Zeilen sind nur vorbereitendes Beiwerk oder geben Infos in die Logdatei aus. Jetzt haben wir im ARTIFACTS_FOLDER eine konkatenierte .js Datei, die den gesamten source enthält.

„Sum of all files“ minimeren

echo. 2>%MIN_JSFILE%
java -jar yuicompressor\yuicompressor-2.4.8.jar %CONCATED_JSFILE% >> %MIN_JSFILE%
RD /S /Q %DEPLOY_FOLDER%\js

Minimieren des .js files mache ich via yuicompressor (GitHub). Es gibt dazu natürlich auch eine Doku. Für den schnellen Einstieg empfehle ich euch den YUI Compressor Quick Guide. Darin findet ihr die Links zur Doku, ein „How To Use“ und ein paar andere Sachen.

Neue Buildnumber setzen

@echo  -- Generate buildnumber file '%DEPLOY_FOLDER%\%BUILD_NUMBER%.buildnumber'>> %LOGFILE%
@echo Buildnumber: %BUILD_NUMBER%>> %DEPLOY_FOLDER%\%BUILD_NUMBER%.buildnumber

Damit wir auch bei jedem Deploy die Buildnummer auch inkremetieren, muss noch kurz die neue Buildnummer ertellte werden. Da für den Kongregate Deploy alles file basiert ist, wird in Zeile 48 eine neue Buildatei mit der Buildnummer als Namen und .buildnummer als Endung erzeugt.

Jetzt kann haben wir eine minimierte .js Datei mit all unserem Source.

Im Dritten Teil werde ich darauf eingehen, wie ich die index.html erstelle.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert