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
- konkateniert (simples append) und
- 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.