首先,让我们对Dockerfile进行一些更改,然后将此部分添加到其中:
RUN LC_ALL=C.UTF-8 apt-add-repository ppa:ondrej/php -y
现在,我们可以安装PHP扩展名Easy Pizzy !!
因此,我们在gitlab-ci.yml
中添加构建部分
build:
stage: Build
image: docker:20.10.16
services:
- docker:dind
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build --pull -t $IMAGE_TAG .
- docker push $IMAGE_TAG
现在我们准备好图像后,本节完成
之后,我们可以创建一个测试部分,并安装在此阶段所需的XDEBUG:
code-coverage:
stage: Test
image: $IMAGE_TAG
script:
- apt-get update
- apt-get install -y php8.2-xdebug
- export XDEBUG_MODE=coverage
我们应该避免在Dockerfile中直接安装Xdebug,因为它会降低性能!
只有一个部分,然后我们的覆盖范围指标就准备就绪
添加此行,因此它将运行代码覆盖范围测试并将覆盖范围的百分比提取到GitLab,并制作测试结果的副本,因此我们可以在Merge请求中检查它们
code-coverage:
stage: Test
image: $IMAGE_TAG
script:
- apt-get update
- apt-get install -y php8.2-xdebug
- export XDEBUG_MODE=coverage
- ./vendor/bin/phpunit --do-not-cache-result --log-junit phpunit-report.xml --coverage-cobertura phpunit-coverage.xml --coverage-text --colors=never
artifacts:
when: always
reports:
junit: phpunit-report.xml
coverage_report:
coverage_format: cobertura
path: phpunit-coverage.xml
coverage: '/^\s*Lines:\s*\d+.\d+\%/'