[inhalt]
Projekt BISO 3 - Handbuch

Entwicklungs- und Build-Tools

Benötigte Build-Tools

Docker-Image

Das Docker-Image erstellen mit:

docker build --pull -t biso docker/dev

docker run -d --name=biso --env="GITLAB_USER=XXXXXX" --env="GITLAB_PASSWORD=XXXXX" --volume="/PATH_TO_YOUR_BISO_REPO:/var/www/html" -v /PATH_TO_YOUR_HOME/.netrc:/root/.netrc biso:latest

Development Env Setup

Nach dem git clone des Repositories sind folgende Schritte auszuführen für eine lauffähige Entwicklungsumgebung:

# Alle Schritte sind in oben gezeigtem Docker-Container auszuführen:
$ docker exec -ti biso bash
(docker) $ npm run setup-dev
(docker) $ npm run dev

Enwticklungs-Build

Während der Entwicklung muss die Frontend-Sencha-Applikation gebuildet werden. Dazu stehen zwei NPM-Scripts zur Verfügung:

$ docker exec -ti biso bash
# Dev-Build:
(docker) $ cd webroot/public/
(docker) $ npm run dev
# Dev-Build, mit Watch:
(docker) $ npm run watch

Dies bildet sowohl die JavaScript-Libraries mit Webpack (index.js, resp. als build-Artefakt: main.js), und führt sencha app build development für die Sencha App aus.

Die Jobs können auch separat ausgeführt werden:

Prod-Build

Ein Production-Build des ExtJS Frontend wird folgendermassen erstellt:

(docker) $ npm run build

Ein kompletter Build-Export (komplettes Webroot, ready für die Installation beim Kunden) wird folgendermassen erstellt:

(docker) $ grunt export

Dabei wird ein Export-Folder unter export/[version] erstellt. Dieser Folder kann beim Kunden installiert werden.

DB-Migrationen

Datenbank-Migrationen werden in DB-Migration-Scripten eingetragen, unterstützt vom gaia-Kommando gaia migration: Es werden KEINE DDL-Statements mehr direkt auf der DB ausgeführt!

Einmalige DDL-Statements

(z.B. Create table, drop column, create index etc...)

1. Migration-Script erstellen:

$ npm run migration-create "[Beschreibung]"

--> es wird ein Migrations-Script erstellt in webroot/db_migrations/[Zeitstempel]-[Beschreibung].sql. In diesem Script wird nun das DDL-Statement geschrieben.

2. Ausführen der Migration:

$ npm run migration-exec

3. Migrationsscript in Repository einchecken

Das Migrationsscript ist ebenfalls Teil des Quellcodes und wird ins Repo eingecheckt.

DDLs für Views, Stored Procedures, Trigger Functions etc.

DDLs, welche ebenfalls als "Quellcode" auf der DB existieren (Views, Stored Procedures etc.) müssen als repeatable migration erstellt werden:

1. Repeatable Migration-Script erzeugen:

$ npm run migration-create-repeatable [objekt-name] z.B.: $ npm run migration-create-repeatable v_benutzer

Es wird in File R_[objektname].sql angelegt.

2. View in R_[objektname].sql beschreiben

Achtung: Dieses File muss MEHRMALS ausgeführt werden können! Erstellt die DDLs also REPEATABLE (z.B.: DROP VIEW IF EXISTS ....; CREATE VIEW....;)

3. Ausführen der Migration

$ npm run migration-exec

4. Repeatable-Migrationsscript in Repository einchecken

Das Migrationsscript ist ebenfalls Teil des Quellcodes und wird ins Repo eingecheckt.

Ausführen von anstehenden Migrationen

Nach einem git pull sollten Entwickler anstehende Migrationen ausführen:

$ npm run migration-exec

Die noch offenen Migrationsscripte werden auf der DB abgespielt.

Konfigurationsoptionen für DB-Migrationen in config.php