在 CentOS 上部署的 GitLab 中集成 CI(Continuous Integration),核心是通过 GitLab Runner + .gitlab-ci.yml 来实现。下面按“从零到可用”的顺序说明。
关系:
代码 push
↓
GitLab 触发 Pipeline
↓
Runner 拉代码 → 执行 job
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-runner -y
gitlab-runner --version
进入:
GitLab → 项目 → Settings → CI/CD → Runners
你会看到:
sudo gitlab-runner register
按提示输入:
centos、build)shell(简单)docker(推荐,隔离好)示例(shell):
Executor: shell
在项目根目录新建:
stages:
- build
- test
build_job:
stage: build
script:
- echo "Building..."
- make || true
test_job:
stage: test
script:
- echo "Testing..."
- ./run_tests.sh || true
提交后:
git add .gitlab-ci.yml
git commit -m "add ci"
git push
GitLab 会自动触发 Pipeline。
gcc, maven, node)示例:
sudo yum install -y gcc make
修改 /etc/gitlab-runner/config.toml:
[[runners]]
executor = "docker"
[runners.docker]
image = "centos:7"
.gitlab-ci.yml 是否语法正确Runner 默认用户是 gitlab-runner
sudo usermod -aG docker gitlab-runner
sudo systemctl restart gitlab-runner
GitLab 和 Runner 在同一台 CentOS 一般没问题
若分离:
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
stages:
- build
build:
stage: build
script:
- yum install -y maven
- mvn clean package
build:
script:
- npm install
- npm run build
.gitlab-ci.yml如果你愿意,我可以:
你可以直接说你的 项目类型 + CentOS 版本。