GitLab Runner Deployment Teil 1 – „The beginners Guide“

Testing und Deployment von „einfachen“ Websiten

Vorkentnisse

Ich baue das Tutorial so auf, das es auch für einsteiger geeignet ist, allerdings schadet es nicht einiges über die „shell“ und über „node/gulp“ zu wissen.

Am Ende dieses Guides, könnt ihr mit GitLab runnern eine Deplyoment Pipeline einrichten, nachdem Ihr diese Pipeline eingerichtet habt, könnt Ihr eure Websiten und Applikationen mit einem klick auf GitLab ganz automatisch Deployen.

Teil 1 – eRSTE VERSUCHE MIT DEN GITLAB RUNNER

Als erstes solltet ihr eine Datei anlegen und diese .gitlab-ci.yml nennen, diese füllt ihr dann mit folgendem Code.


# .gitlab-ci.yml
stages: # die "stages" welche der runner durchlaufen wird
  - test

#Test application
test:
  stage: test
  image: node:7.9.0 #docker image welches verwendet werden soll
  before_script: # vor dem eigentlichen script
    - cd templates/_build  # zu meinem "node" ordner
    - npm install gulp-cli --global # "gulp" installieren
    - npm install  # alles installieren was in package.json konfiguriert ist 
    - gulp
    - cd $CI_PROJECT_DIR #gehe zurück in das "root" verzeichniss ($CI_PROJECT_DIR ist eine shell variable, welche im GitLab runner zur verfügung gestellt wrid) 
  script: # das "script" selbst 
    - cd public/assets 
    - test -e style.js # wenn es diese datei gibt dann wird "exit 0" ausgeführt 
    - test -e style.css after_script: - rm -rf node_modules # eigentlich nicht nötig, nur als beispiel was man hier machen könnte 
  except: 
    - master #diese pipleine immer ausführen, wenn nicht der master branch betroffen ist. 

in Beispiel gibt es das Verzeichnis templates/_build indem mein package.json File liegt. Dazu gibt es ein gulpfile.js mit der gulp Konfiguration.

Ablauf:

  1.  Der runner „schaut“ welche stages es gibt, und sieht den „stage“ test
  2.  Die before_scirpt section wird ausgeführt
    1. cd –> gehe nach tempaltes/_build
    2. installiere die gulp-cli global –> installiert den befehlt gulp
    3. installiere alles was in package.jsonkonfiguriert ist
  3. Die script section wird ausgeführt und testet, ob die Dateien style.jsund style.css im Verzeichnis vorhanden sind
  4. Die after_script section wird ausgeführt und löscht den node_modules ordner

Solange es keine Fehler gibt, läuft die Pipeline durch bis zum Ende und euer getesteter Branch wird mit einem grünen Haken markiert.

falls es Probleme gab, wird ein Roter Haken angezeigt.

(Die Bilder dienen hier nur als beispiel wird bei euch nicht 1:1 so aussehen)

Ein Fehler Bedeutet bei einem Gitlab runner soviel wie… alle shell befehle wurden ausgeführt, und haben mit „exit 0“ beendet, wenn ihr in der script section eine Zeile - exit 1 einfügt, wird das script mit einem Fehler abbrechen.

Mehr darüber: http://bencane.com/2014/09/02/understanding-exit-codes-and-how-to-use-them-in-bash-scripts/

Falls ihr node/gulp nicht benötigt, könnt ihr auch Dateien mit „normalen“ shell Befehlen Kopieren und dann eigene Tests durchführen. Falls ihr eure eigenen Konfigurationen schreibt könnt mit „CI Lint“ (screenshot oben rechts) eure .gitlab-ci.yml „validieren“

 

Für Fragen bitte die Kommentare benutzen, dann haben alle etwas davon :).

Und über einen Like würde ich mich freuen.