Contao Konferenz 2019

Peter Adelmann, trilobit GmbH

Contao Konferenz 2019

Gemeinsam
an Contao-Projekten arbeiten

Gemeinsam an Contao Projekten arbeiten

Arbeiten mehrere Entwickler gleichzeitig an einer Contao-Instanz, behindern sie sich oft gegenseitig. Arbeitet jeder auf einer eigenen Instanz, gibt es häufig Probleme beim Synchronisieren. Wie arbeitet man am besten mit Tools wie z.B. git und gitlab? Und wie hält man die Datenbank konsistent? Hier gibt der Vortrag Einblicke in die Arbeit bei trilobit, die auch als Denkanstöße oder Best Practices für andere dienen können.

Wer bin ich?
trilobit GmbH

In eigener Sache

Wer bin ich / trilobit GmbH

Heraus­forderungen,
Probleme,
Vorüberlegungen

Wie werden Daten in Contao organisiert?

Themenbereiche

Projekt-Team


Arbeitsweise

Finalisieren


Weiterentwicklung

(unsere)
Ziele

Ziele

(unser)
Weg

...bevor es los geht...

vgl „Herausforderungen, Probleme, Vorüberlegungen“ ;-)

Analyse

Analyse

Werkzeuge,
Umgebung

Werkzeuge









(t) trilobit Tools

(Entwicklungs-) Umgebung

Arbeitsweisen

Arbeitsweisen

In der Praxis

Entwicklungs-„Server“

Arbeiten

In der Praxis

git

Projekt
initialisieren

Projekt initialisieren

  1. neues Projekt auf GitLab anlegen
  2. Skeleton lokal auschecken
  3. Projekt lokal initialisieren (Referenzen auf das Skeleton-Repo werden entfernt)
  4. Projekt lokal installieren
  5. initialer commit ins Projekt-Repository auf GitLab

Shell

Einzelschritte zum Projektstart:


cd /var/www/html/contao

git clone git@gitlab.trilobit.de:trilobit/skeletons/c4-app-skeleton.git ck2019

cd ck2019
cp www/app/config/parameters.yml.dist www/app/config/parameters.yml
nano www/app/config/parameters.yml

./initialize-new-application-project
./install

Host einrichten und starten ;-)

Initialisierungs-Script

Git-Verlauf entfernen und vom ursprünglichen Sekeleton-Projekt lösen.


#!/usr/bin/env bash

SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
cd ${SCRIPT_PATH}

# re-init git
echo "Reinitializing git history"
rm -rf .git
rm -rf database/tools
git init

# re-add submodules
git submodule add git@gitlab.trilobit.lokal:trilobit/tools/contao-database-tools.git database/tools

# remove this script
echo "Removing script"
rm -- "$0"
        

Install-Script

Verschiedene Prüfungen und Installation (composer install, yarn).


#!/usr/bin/env bash

SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
PROJECT_ROOT="$SCRIPT_PATH/www"

check_parameters_set() {
    if [[ ! -f ${PROJECT_ROOT}/app/config/parameters.yml ]]; then
        echo "Please create a 'www/app/config/parameters.yml' file first."
        echo "Use the content of 'www/app/config/parameters.yml.dist' and adjust to your needs."
        echo "Aborting."
        exit 1
    fi
}

check_php_installed() {
    if ! hash php7.3 2>/dev/null; then
        echo "php7.3  not found."
        echo "Aborting."
        exit 1
    fi
}

install_yarn() {
    if hash yarn 2>/dev/null; then
        return
    fi

    echo "yarn not found, installing now"

    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt-get update && sudo apt-get install yarn
}

install_application() {
    cd ${PROJECT_ROOT}

    # composer
    php7.3 composer.phar install

    # assets
    yarn install
    yarn encore dev

    echo "--------------------------------------------------------------------------------------------------"
    echo "Installation completed."
    echo "Run 'tools:db:import' to import the project dumps to your database."
}

# check prerequisites
check_parameters_set
check_php_installed
install_yarn

# install application
install_application

Deployment

Helfer

Organisation

Besonderheiten

Allgemein

Die folgenden Punkte / Teilbereiche können „sauber“ voneinander
abgetrennt,
versioniert und
gemerged werden:

Datenbank

Oft gehören auch diverse Tabellen zu eigenen Bundles und Anpassungen.

Weitere Schritte

Weitere Schritte

Weitere Schritte

Vielen DANK!




Wir lieben Kunden, für die der Livegang einer Webseite nicht das Ende sondern der Anfang des Abenteuers ist.

trilobit GmbH

KnowHow

trilobit GmbH / Peter Adelmann

CD

Continuous Deployment


bezeichnet eine Sammlung von Techniken, Prozessen und Werkzeugen, die den Softwareauslieferungsprozess (englisch: Deployment) verbessern. ... Diese Versionen können mit Hilfe von CD automatisiert auf Entwicklungs-, Test-, Integrations- und Produktivumgebung eingespielt werden.

CI

Continuous Integration


Kontinuierliche Integration (auch fortlaufende oder permanente Integration; englisch continuous integration) ist ein Begriff aus der Software-Entwicklung, der den Prozess des fortlaufenden Zusammenfügens von Komponenten zu einer Anwendung beschreibt.

Code Quality

Softwarequalität


Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen.