返回

持续集成中的 Composer 良方,释放生产力

开发工具

在上一篇文章中,我们讨论了如何搭建高性能的 Composer 服务。在本文中,我们将探讨如何将 Composer 与 CI 系统(如 GitLab Runner)集成在一起,以便实现持续集成。这将有助于您提高开发效率,并确保您的项目能够始终保持高质量。

我们将在本文中主要介绍以下内容:

  • 如何配置 GitLab Runner 以支持 Composer
  • 如何编写必要的脚本以使用 Composer
  • 如何设置环境变量以支持 Composer
  • 如何编写测试用例以测试 Composer 的功能
  • 如何监控和预警 Composer 的运行状况

配置 GitLab Runner

为了能够使用 Composer,我们需要先在 GitLab Runner 中进行配置。

  1. 安装必要的软件包
sudo apt-get install composer
  1. 创建 GitLab Runner 用户
sudo adduser --system --group --no-create-home gitlab-runner
  1. 创建 GitLab Runner 服务
sudo nano /etc/systemd/system/gitlab-runner.service

在该文件中,添加以下内容:

[Unit]
Description=GitLab Runner
After=network.target

[Service]
User=gitlab-runner
Group=gitlab-runner
WorkingDirectory=/home/gitlab-runner
ExecStart=/usr/bin/gitlab-runner run --user=gitlab-runner --working-directory=/home/gitlab-runner
Restart=always

[Install]
WantedBy=multi-user.target
  1. 启动 GitLab Runner 服务
sudo systemctl start gitlab-runner

编写必要的脚本

接下来,我们需要编写必要的脚本以使用 Composer。

  1. 创建一个名为 composer.sh 的脚本,并将以下内容添加到该脚本中:
#!/bin/bash

# 设置环境变量
export COMPOSER_HOME=/home/gitlab-runner/.composer
export PATH=$PATH:$COMPOSER_HOME/vendor/bin

# 运行 Composer 命令
composer "$@"
  1. 将该脚本复制到 GitLab Runner 的工作目录中:
sudo cp composer.sh /home/gitlab-runner/
  1. 将该脚本的可执行权限设置为 +x
sudo chmod +x /home/gitlab-runner/composer.sh

设置环境变量

为了能够在脚本中使用 Composer,我们需要设置环境变量。

  1. 创建一个名为 .gitlab-ci.yml 的文件,并将以下内容添加到该文件中:
variables:
  COMPOSER_HOME: /home/gitlab-runner/.composer
  PATH: $PATH:$COMPOSER_HOME/vendor/bin
  1. 将该文件复制到项目的根目录中:
cp .gitlab-ci.yml /path/to/project/

编写测试用例

接下来,我们需要编写测试用例以测试 Composer 的功能。

  1. 创建一个名为 tests 的目录,并将以下内容添加到该目录中:
composer.json
  1. composer.json 文件中,添加以下内容:
{
  "require-dev": {
    "phpunit/phpunit": "^9.5"
  },
  "scripts": {
    "test": "phpunit"
  }
}
  1. 创建一个名为 tests/MyTest.php 的文件,并将以下内容添加到该文件中:
<?php

use PHPUnit\Framework\TestCase;

class MyTest extends TestCase
{
    public function testComposer()
    {
        $this->assertTrue(true);
    }
}

监控和预警

最后,我们需要监控和预警 Composer 的运行状况。

  1. 在 GitLab Runner 的配置文件中添加以下内容:
log_level = "debug"
  1. 重新启动 GitLab Runner 服务:
sudo systemctl restart gitlab-runner
  1. 在 GitLab 项目中,创建一个名为 .gitlab-ci.yml 的文件,并将以下内容添加到该文件中:
stages:
  - build

build:
  stage: build
  script:
    - composer install
    - composer test
  1. 将该文件复制到项目的根目录中:
cp .gitlab-ci.yml /path/to/project/
  1. 现在,每次您将代码推送到 GitLab 时,GitLab Runner 都会自动运行 Composer 安装和测试。

  2. 您可以在 GitLab 项目的 CI/CD 页面中查看构建结果。