# Deployer gebruiken in plaats van .gitlab ci.yml

Info over hoe je Deployer kan gebruiken om Drupal websites te deployen (van lokaal naar productie op Combell)

# Instructies

Eerst deployer toevoegen aan je project:

```
ddev composer require deployer/deployer --dev
```

Dan `deploy.php` kopieren vanuit starterkit en de nodige aanpassingen doen. Voor subsites moet je na succesvolle deployment in my combell zelf de subsite bewerken en de servermap `current/web` selecteren ipv `/web`.

Vergeet niet om `.gitlab-ci.yml` te hernoemen naar bv `.gitlab-ci.yml.old` ofzo zodat er geen gitlab deployments meer zijn.

Om een volledige deploy te doen, kies een van:

```
ddev exec dep deploy
ddev exec dep deploy -v
ddev exec dep deploy -vvv
```

Om te deployen naar development (als die host is gedefiniëert):

```
ddev exec dep deploy development
```

Om een snelle deploy te doen die enkel gewijzigde files synchroniseert (NIET contrib)

```
ddev exec dep fast-deploy
```

Om een deploy te doen die geen nieuwe release maakt enz maar wel files synct en dan drush deploy doet:

```
ddev exec dep medium-deploy
```

Als deployment succesvol is en alles werkt, dan mag in principe de hele /production folder verwijderd worden.

```
chmod -R 777 production
rm -rf production
```

Allereerste keer moet data uiteraard gekopieerd worden van huidige /production folder:

```
ssh nukamelcom@ssh063.webhosting.be
mkdir shared
mkdir shared/web
mkdir shared/web/sites
mkdir shared/web/sites/default
cp production/web/sites/default/settings.db.php shared/web/sites/default
mkdir shared/web/sites/default/files
cp -r production/web/sites/default/files/* shared/web/sites/default/files
mkdir shared/tmp
cp -r production/tmp/* shared/tmp
mkdir shared/private
cp -r production/private/* shared/private
```

Vergeet niet om ook in crontab eventuele paden aan te passen van `/production` naar `/current`. Ook mag je `--uri=...` weglaten: dat is in orde dankzij drush.yml file die wordt aangemaakt via deployments.

```
nano /etc/crontab
```

Voeg volgende toe in .gitignore, dat gaan we custom genereren per hosting tijdens deployments:

```
/drush/drush.yml
```

Ook mag de vendor folder uit git verwijderd worden. Eerst toevoegen aan `.gitignore`:

```
/vendor
```

Daarna:

```
git add . && git commit -am "added /vendor into .gitignore" && git push
git rm -rf vendor && git add . && git commit -am "removed vendor folder from git" && git push
ddev composer install
```

Via SSH een subsite opkuisen die omgezet is naar deployments via deployer

```
cd /data/sites/web/henradeu/subsites/dev.henrad.eu
rm -rf .ddev .vscode assets config drush img private recipes scripts vendor web
rm -f .deploy.gitignore .editorconfig .gitattributes .gitlab-ci.back.yml auth.json composer.json composer.lock composer.lock.old gulpfile.js.old package.json.old package.json.old
```