我使用 gitlab、gitab-ci,我对持续集成还是很陌生。我尝试在代码推送上测试和部署 bash 脚本。

这就是我的 .gitlab-ci.yml 在部署时的样子我尝试更改用户但不起作用

before_script:
  - composer install --prefer-dist > /dev/null

stages:
  - build
  - test
  - deploy


unitTesting:
  stage: test
  script:
    - echo "Running PHPUnit Tests"
    - php vendor/bin/phpunit --colors --debug  --coverage-text

job_deploy_master:
  stage: deploy
  only:
    - master
  script:
    - /bin/su - myuser -c "deploy.sh" //here I try to change linux user to be able to checkout code but fails with  **su: must be run from a terminal**
  tags:
    - php

在这里我有 bash,如果测试通过,它应该在生产站点上提取代码
#!/bin/bash

echo "Starting Deploy"
printf '%s\n' "${SUDO_USER:-$USER}" //I'm interested to see which user try to run this script outputs gitlab-runner
cd /home/builds/gpx-convertor
git pull
composer install --prefer-dist > /dev/null

我试图谷歌找到一些与 php 相关的例子,但没有成功。有人可以展示应该如何工作

最佳答案

尝试用 sudo -Hu 替换 su -c

关于php - Gitlab CI 如何部署PHP?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37653026/

10-17 00:01