smichaelsen / typo3-gitlab-ci
Requires
- php: >=7.0 <7.2
- helhum/dotenv-connector: ^2.0.1
- helhum/typo3-console: ^4.6.5
- typo3/cms: ^7.6 || ^8.7
Requires (Dev)
- guzzlehttp/guzzle: ^6.3.0
- phpunit/phpunit: ^6.2.3
- v4.x-dev
- dev-master / 4.x-dev
- 4.1.0
- 4.0.2
- 4.0.1
- 4.0.0
- v3.x-dev
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.0
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.0
- dev-task/public-folder
- dev-task/typo3-v9-compat
- dev-task/web-lowercase
- dev-task/helhum-dotenv
- dev-task/typo3-8-7-compat
- dev-feature/ssh-username
- dev-task/typo3-8-6-compat
- dev-feature/pre-deploy-script
This package is auto-updated.
Last update: 2024-08-29 04:01:25 UTC
README
此包可以帮助您使用 GitLab CI 设置 TYPO3 安装部署。您的 TYPO3 安装必须是 composer 基础的。
设置
在您的根 composer.json 中包含以下配置
"require": {
"smichaelsen/typo3-gitlab-ci": "^4.0.0"
},
"extra": {
"helhum/typo3-console": {
"install-binary": false,
"install-extension-dummy": false
},
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": "web"
}
},
"scripts": {
"install-gitlab-ci": [
"{$vendor-dir}/smichaelsen/typo3-gitlab-ci/scripts/install.sh"
],
"post-autoload-dump": [
"@install-gitlab-ci"
]
}
运行 composer update
以安装所有内容。您将在根目录中找到一个 .env.example
文件。将其复制到 .env
,添加到 .gitignore
,并用您本地 TYPO3 安装的设置填充它。
如果之前没有 typo3conf/AdditionalConfiguration.php
,则在安装此包后会出现一个,它将从 .env
加载设置。如果您已经有了自定义的 typo3conf/AdditionalConfiguration.php
,只需在文件开头包含以下行
(new \Smichaelsen\Typo3GitlabCi\ConfigLoader())->populate();
实验性:使用 helhum/minimal-typo3-distribution 设置新的安装
composer create-project helhum/minimal-typo3-distribution my-typo3-project ^8
cd my-typo3-project
./vendor/bin/typo3cms install:setup
最后一个命令是交互式的,会要求您输入数据库凭据。选择“站点”或“否”作为设置类型。
composer require smichaelsen/typo3-gitlab-ci dev-master && vendor/smichaelsen/typo3-gitlab-ci/scripts/install.sh
php -S 127.0.0.1:8080 -t web/
GitLab 变量
在您的 GitLab 项目中设置以下变量以获取工作部署。
⭐ 使用特定分支名称前缀的变量名将使设置仅对该分支有效。例如,master_DBPASS
仅对 master
分支有效,如果配置了 DBPASS
,则它将优先于 DBPASS
。
✨ 生成一个 SSH 密钥对,并将私钥存储在 SSH_PRIVATE_KEY
中。将公钥添加到目标服务器(s)上的 .ssh/authorized_keys
。此外,将公钥作为“部署密钥”添加到您需要加载的私有存储库(例如,通过 composer)。
自定义脚本和配置
您可以在部署过程中的某些点上调用自己的脚本。安装此包后,您将在根目录中找到一个名为 gitlab-script/
的文件夹,其中包含以下划线 _
开头的文件。删除下划线以激活文件,并填写您自己的命令。
after-composer.sh
将在加载所有依赖项并将其移动到 .Build
文件夹(在后续阶段将最终部署)的 composer
作业中执行。您可以使用此自定义脚本影响 .Build
的内容。
build-extensions.sh
将在 build_extensions
作业中执行。如果您的 TYPO3 扩展在部署之前需要构建,您可以在其中进行操作。此作业使用 node:8 docker 镜像执行,这意味着机器已为基于 node 的前端构建(npm、grunt 等)做好准备。但您的脚本也可以安装您需要的其他软件。
pre-deploy.sh
将在代码实际传输到目标服务器之前的 deploy
作业中执行。使用此脚本在目标服务器上做最后的准备工作。
提示:在您的自定义脚本中,您有所有 Gitlab CI 变量可用。因此,您可以像这样在目标服务器上执行命令
ssh -p $SSH_PORT $SSH_USERNAME@$SSH_HOST "echo 'Hello from the target server!'"
rsync-build-excludes.txt
在此列出您希望从整个 CI 过程中排除的文件和目录。这将加快您的 CI 过程并降低运行服务器上的磁盘使用率。每行列出一个文件/目录模式。
rsync-deploy-excludes.txt
在此处列出您在CI过程中使用的文件和目录,但不想部署到目标服务器。只将真正需要运行网站的文件发送到生产服务器是一种良好的做法,可以提高安全性。每行列出一种文件/目录模式。
版本和更新
此包使用语义化版本控制。因此,建议您使用^4.0.0
来要求此包。这样,您就可以期待在不破坏更改的情况下接收错误修复版本和改进。
破坏性更改
4.x到5.x
- 最后提交:现在需要TYPO3版本8.7
3.x到4.x
- 88a6e934:现在需要PHP版本7.0
- 1c8d9c70:Web目录已从
Web
重命名为小写web
。请确保在您的composer.json
中设置"web-dir": "web"
(参见上面的“设置”)。同时确保您的Web服务器主机配置指向小写目录。在大小写不敏感的文件系统(如macOS)上,您需要手动重命名目录。 - dbdf3ba2:
build_extensions
作业现在使用node 8镜像而不是node 7执行。请确保您的前端构建基于node 8。
2.x到3.x
- 384242e0:
.Build
目录现在从所有文件中构建,排除某些特定文件和目录(如.git
),而不仅仅是复制已知文件和目录列表。这可能导致额外的文件出现在.Build
目录中,并最终被部署。使用新的gitlab-ci-scripts/rsync-build-excludes.txt
来定义额外的排除项。 - a6a12ee3:已删除fileadmin同步功能,因为它设置复杂且存在错误。现在管道运行速度更快,因为无需不必要阶段。
- ff869f95:TYPO3控制台现在还执行
extension:setupactive
和upgrade:all
。请检查是否需要为您的项目执行这些操作。 - 055f641c:
download
和typo3conf/LFEditor
不再从部署中排除,因为它们非常特定于项目。如果您依赖它们不被rsync复制,请将它们添加到gitlab-ci-scripts/rsync-deploy-excludes.txt
- cf5cc8b0:
build_extensions
作业现在使用node 7镜像而不是node 6执行。请确保您的前端构建基于node 7。
1.x到2.x
- 现在不再提供
SSH_HOST
中的ssh用户名和主机,而是有一个单独的SSH_USERNAME
变量。您必须设置它以确保您的部署工作。