FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
Sind Sie interessiert bei der Automatisierung der TYPO3-Einführung effektiv? Dieser Artikel befasst sich mit Einsatzstandards von TYPO3, beschäftigen Werkzeuge wie z. B. Bitbucket CI/CD, Verteiler, Code-Überprüfung, Frontend-Erstellung, docker/ddev, und Aufstellen Entwicklung, Inszenierung, und Produktionsumgebungen. Entdecken Sie die empfohlenen Praktiken für TYPO3 v12 und DevOps in diesem informativen Artikel.
Sind Sie noch manuell installieren Ihre TYPO3-Projekte mit altmodische Methoden wie SFTP/SSH? Nun, es ist Zeit zu gehendie im Jahr 2023 zurückbleiben! Verabschieden Sie sich von manuellen TYPO3 Deployern und komplizierte SSH-Befehle. Stattdessen, lassen Sie uns Ihre TYPO3-Bereitstellung vollständig automatisiert mit TYPO3 Bitbucket CI/CD. Das bedeutet, Sie können Zeit sparen und Aufwand durch die Automatisierung der Einsatz Prozess, Einfacher und effizienter machen. Also, warum nicht sich diesen modernen Ansatz zu eigen machen und machen Ihre TYPO3-Entwicklung und Einsatz a Brise im Jahr 2023?
Wenn Sie auch an TYPO3 Gitlab interessiert sind, Ich empfehle dringend die Lektüre unseres berühmten Artikels TYPO3 Gitlab CI/CD Auto-Bereitstellung (2022).
Achtung!
Sind Sie bereit für die Reise mit TYPO3 + Bitbucket + CI/CD? Dieser Artikel bietet ein TYPO3 v12-Proben, aber wenn Sie mit älteren TYPO3-Versionen arbeiten, werden Sie einige Anpassungen vornehmen müssen, insbesondere hinsichtlich die Bit-Architektur.
Tauchen wir ein in die spannende Welt von TYPO3+ Bitbucket + CI/CD! Es ist an der Zeit, Ihre TYPO3 Entwicklung zu rationalisieren und Einsatzprozess. Los geht's!
Was ist TYPO3 CI/CD?
Verabschieden Sie sich von den Tagen der manuellen Bereitstellung und komplexe befehlsbasierte Arbeitsabläufe! Mit TYPO3 CI/CD (Kontinuierliche Integration und Kontinuierliche Entwicklung), können Sie automatisieren die Bereitstellung Ihres TYPO3-Projekts.
Die Magie geschieht über Ihr Git-Repository. Durch die einfache Verwendung von Befehlen wie git push oder git tag, können Sie die automatische Ratenzahlung Ihr neuester Code auf den Staging- oder Produktionsserver.
Aber das ist noch nicht alles! TYPO3 CI/CD bietet auch eine raffinierte Funktion: code-Testen vor Ratenzahlung. Dies ermöglicht Sie müssen sicherstellen, dass Ihr TYPO3-Code erfüllt die höchsten Qualitätsstandards und gibt Ihnen mehr die Kontrolle über seine Gesamtqualität.
Umarmung TYPO3 CI/CD und genießen Sie die Einfachheit der automatischen Bereitstellung und den Seelenfrieden, der mit Code-Tests einhergeht. Es ist an der Zeit, Ihren TYPO3 Entwicklungsprozess zu vereinfachen und auf die nächste Stufe zu heben!
Schritte zu Automatische Bereitstellung von TYPO3
Automatische Bereitstellung von TYPO3 Die Verwendung von Bitbucket CI/CD ist so einfach wie 1-2-3:
- Änderungen am Code vornehmen und übertragen Sie sie mit `git push`.
- Starten Sie die TYPO3-Bitbucket-Pipeline-Runner.
- Lehnen Sie sich zurück und entspannen Sie sich! Ihr neuer Code wird automatisch auf dem Server bereitgestellt.
Führen Sie einfach `git push` aus, und Ihre Bereitstellung ist nahtlos erledigt werden. So einfach und cool ist das! Genießen Sie den Komfort der automatisierten Bereitstellung von TYPO3 mit Bitbucket CI/CD.
TYPO3 Bitbucket Pipedrives
Was genau wollen wir erreichen? Werfen Sie einen Blick auf den folgenden Screencast, wir wollen diese 4 Dinge erreichen.
1. Automatische Codeüberprüfung (Beispiel PHP)
Liste der Technologien für die TYPO3-Bereitstellung
Sie benötigen mit modernen Technologien zu beginnen TYPO3 Projekte effizient entwickeln und einsetzen.
- Betriebssystem (empfohlen UNIX-basiert)
- Docker >= 18.x
- Docker-Komponist >= 3.x
- DDEV
- Komponist >= 2.x
- PHP >= 7.4.x
- deployeur >= 6.x
- PHPStan und PHP-CS-Fixer
- Nodejs/Webpack (fakultativ)
Die Architektur von TYPO3 Bitbucket CI/CD
Verwendung des TYPO3 v12-Setups, Bitte beachten Sie die folgende minimale Git TYPO3 Architektur.
- .ddev
- config
-- sites
-- default
-- system
-- settings.php
-- additional.php
- packages
-- your-custom-package
- composer.json
- deploy.php
- bitbucket-pipelines.yml
- phpstan.neon
Verstehen Sie die Grundlagen von TYPO3 DevOps
Das Wesentliche Informationshinweise Sie sind verantwortlich für das Verständnis der lokalen Entwicklung und des TYPO3 DevOps-Setups.
bauen/einsetzen.php
Enthält das PHP Deployer-Rezept, Es ist nur ein einfaches PHP-Skript - Ich bin sicher, Sie werden es leicht verstehen.
config/system
Sie können die TYPO3-Installation je nach den Bedürfnissen Ihres Servers konfigurieren, z.B. lokal oder produktiv.
config/system
Sie können TYPO3-Sites konfigurieren.
packages/*
Fügen Sie Ihre selbst entwickelten TYPO3-Erweiterungen hinzu, z.B. Ihre Template-Erweiterung.
image: php:8.1
definitions:
steps:
- step: &code-analysis
name: PHPStan
caches:
- composer
script:
- composer install --ignore-platform-reqs --no-progress --no-interaction
- if [ -e vendor/bin/phpstan ]; then php -d memory_limit=2G vendor/bin/phpstan analyse; fi
- step: &build
name: Composer
caches:
- composer
artifacts:
- public/**
- packages/**
- config/**
- vendor/**
script:
- composer install --ignore-platform-reqs --no-dev --verbose --prefer-dist --no-progress --no-interaction --optimize-autoloader
- step: &build-frontend
name: Node.js
image: node:19.9.0-alpine3.18
caches:
- node
artifacts:
- public/**
script:
- yarn
- yarn build
- step: &deploy
name: Deploy
caches:
- composer
script:
- composer global require deployer/deployer:^6.3 deployer/recipes --dev --no-progress --no-interaction
- "`composer global config bin-dir --absolute`/dep --file=./deploy.php deploy -vv --hosts=${TARGET_HOSTS}"
pipelines:
branches:
main:
- parallel:
steps:
- step:
<<: *code-analysis
- step:
<<: *build
- step:
<<: *build-frontend
- step:
<<: *deploy
deployment: Production
<?php declare(strict_types=1);
namespace Deployer;
require 'recipe/common.php';
require 'recipe/rsync.php';
function env(string $name): string|array
{
$value = getenv($name);
if ($value === false) {
throw new \RuntimeException(\sprintf(
'Environment variable \'%s\' missing.',
$name,
));
}
return $value;
}
host('main')
->hostname(env('SSH_HOST'))
->user(env('SSH_USER'))
->set('deploy_path', env('DEPLOY_PATH'))
->set('writable_mode', 'chmod')
->set('keep_releases', '3');
// Prepare Directory Structure
$sharedDirectories = [
'public/fileadmin',
//'public/typo3temp',
//'var',
];
set('shared_dirs', $sharedDirectories);
$sharedFiles = [
'.env',
'public/.htaccess',
];
set('shared_files', $sharedFiles);
$writeableDirectories = [
'public/fileadmin',
'public/typo3temp',
'var',
];
set('writable_dirs', $writeableDirectories);
$exclude = [
'.ddev',
'deploy.php',
'package.json',
'package-lock.json',
'.env',
'var/',
'public/fileadmin/',
'public/typo3temp/'
];
// Ready for Rsync
set('rsync', [
'exclude' => array_merge($sharedDirectories, $sharedFiles, $exclude),
'exclude-file' => false,
'include' => [],
'include-file' => false,
'filter' => [],
'filter-file' => false,
'filter-perdir' => false,
'flags' => 'avz',
'options' => ['delete'],
'timeout' => 300
]);
set('rsync_src', '.');
// Execute TYPO3 CLIs
task('typo3:extension:setup', function() {
cd('{{release_path}}');
run('vendor/bin/typo3 extension:setup');
});
task('typo3:database:updateschema', function() {
cd('{{release_path}}');
run('vendor/bin/typo3 database:updateschema');
});
task('typo3:cache:flush', function() {
cd('{{release_path}}');
run('vendor/bin/typo3 cache:flush');
});
task('typo3:cache:warmup', function() {
cd('{{release_path}}');
run('vendor/bin/typo3 cache:warmup');
});
task('typo3:language:update', function() {
cd('{{release_path}}');
run('vendor/bin/typo3 language:update');
});
// Let's Deploy Now!
task('deploy', [
'deploy:prepare',
'deploy:lock',
'deploy:release',
'rsync:warmup',
'rsync',
'deploy:shared',
'deploy:writable',
'typo3:extension:setup',
//'typo3:database:updateschema',
'typo3:language:update',
'typo3:cache:flush',
'typo3:cache:warmup',
'deploy:symlink',
'deploy:unlock',
'cleanup',
'success'
]);
// unlock after failure
after('deploy:failed', 'deploy:unlock');
{
"name": "typo3/bitbucket-project-template",
"description" : "TYPO3 CMS Distribution - Bitbucket Project Template",
"license": "GPL-2.0-or-later",
"type": "project",
"config": {
"allow-plugins": {
"typo3/class-alias-loader": true,
"typo3/cms-composer-installers": true,
"helhum/dotenv-connector": true,
"phpstan/extension-installer": true
},
"platform": {
"php": "8.2"
},
"sort-packages": true
},
"prefer-stable": true,
"minimum-stability": "dev",
"repositories": {
"local-packages": {
"type": "path",
"url": "packages/*"
}
},
"require": {
"helhum/dotenv-connector": "^3",
"typo3/cms-backend": "^12",
"typo3/cms-belog": "^12",
"typo3/cms-beuser": "^12",
"typo3/cms-core": "^12",
"typo3/cms-dashboard": "^12",
"typo3/cms-extbase": "^12",
"typo3/cms-extensionmanager": "^12",
"typo3/cms-felogin": "^12",
"typo3/cms-filelist": "^12",
"typo3/cms-fluid": "^12",
"typo3/cms-fluid-styled-content": "^12",
"typo3/cms-form": "^12",
"typo3/cms-frontend": "^12",
"typo3/cms-info": "^12",
"typo3/cms-install": "^12",
"typo3/cms-lowlevel": "^12",
"typo3/cms-rte-ckeditor": "^12",
"typo3/cms-seo": "^12",
"typo3/cms-setup": "^12",
"typo3/cms-sys-note": "^12",
"typo3/cms-t3editor": "^12",
"typo3/cms-tstemplate": "^12",
"typo3/cms-viewpage": "^12"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.13.0",
"helmich/typo3-typoscript-lint": "^3.0.0",
"php-coveralls/php-coveralls": "^2.5.3",
"phpunit/phpunit": "^9.5.26",
"saschaegerer/phpstan-typo3": "^1.8",
"seld/jsonlint": "^1.9.0",
"squizlabs/php_codesniffer": "^3.7.1",
"symfony/yaml": "^5.4 || ^6.1",
"typo3/cms-fluid-styled-content": "^11.5.4 || ^12.0",
"typo3/coding-standards": "^0.5.5"
}
}
TYPO3_TRUSTED_HOSTS=.*.*
TYPO3_CONTEXT=Production
TYPO3_DB_DATABASE=
TYPO3_DB_USERNAME=
TYPO3_DB_PASSWORD=
TYPO3_DB_HOST=
TYPO3_DB_PORT=3306
TYPO3_DB_DRIVER=mysqli
SSH_HOST=
SSH_USER=
DEPLOY_PATH=
Das war's! Sie sind bereit, Ihr erstes TYPO3 Bitbucket CI/CD zu starten - führen Sie einfach `git push` aus.
Hilfreiche Links für TYPO3 DevOps
Vielleicht möchten Sie auch weitere Artikel lesen auf der TYPO3-Installation wie unten dargestellt.
- Vorteile der kontinuierlichen Code-Integration [CI/CD]
- TYPO3 Gitlab CI/CD Auto-Bereitstellung (2022)
- Wie Sie Ihre TYPO3-Implementierung automatisieren (mit PHP Deployer)
- Wie konfiguriere ich den PHP Deployer in TYPO3?
- 8 besten TYPO3 Docker-Entwicklungsansätze
- Wie kann man TYPO3-Extensions mit Github automatisch freigeben?
- 8 Wege zur Veröffentlichung Ihrer TER TYPO3-Erweiterungen
- Der beste Leitfaden zum TYPO3 Composer
Einpacken!
Vielen Dank für das Lesen meines Blogs. Ich hoffe, es gefällt Ihnen und fand es hilfreich.
Ich empfehle dringend, TYPO3 CI/CD Auto-Deployment auszuprobieren, vor allem, wenn Sie noch mit der traditionellen manuellen Bereitstellungsmethoden. Annahme der Herausforderung und Übergang zur automatisierten Bereitstellung Passt perfekt zu den Zielen und der Vision für 2023. Wenn Sie auf dem Weg auf Hindernisse stoßen, zögern Sie nicht, sich zu melden. Ich bin hier, um Ihnen zu helfen und Sie zu unterstützen.
Wenn Sie sich bereits mit TYPO3 DevOps auskennen, Das ist fantastisch! Ich bin neugierig auf Ihre bevorzugte Methode der TYPO3-Bereitstellung. Ihr Feedback und Ihre Erfahrungen würde sehr geschätzt werden. Fühlen Sie sich frei, Ihre Gedanken zu teilen im Kommentarfeld unten.
Viel Spaß beim TYPO3 Deployment!
Thanks for breaking down the TYPO3 Bitbucket CI/CD setup into simple steps. It helped me understand everything perfectly!