smichaelsen/typo3-gitlab-ci

该包最新版本(4.1.0)没有提供许可证信息。

4.1.0 2018-02-28 10:45 UTC

README

Build Status

此包可以帮助您使用 GitLab CI 设置 TYPO3 安装部署。您的 TYPO3 安装必须是 composer 基础的。

Screenshot

设置

在您的根 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)上,您需要手动重命名目录。
  • dbdf3ba2build_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:setupactiveupgrade:all。请检查是否需要为您的项目执行这些操作。
  • 055f641cdownloadtypo3conf/LFEditor不再从部署中排除,因为它们非常特定于项目。如果您依赖它们不被rsync复制,请将它们添加到gitlab-ci-scripts/rsync-deploy-excludes.txt
  • cf5cc8b0build_extensions作业现在使用node 7镜像而不是node 6执行。请确保您的前端构建基于node 7。

1.x到2.x

  • 现在不再提供SSH_HOST中的ssh用户名主机,而是有一个单独的SSH_USERNAME变量。您必须设置它以确保您的部署工作。