在Linux上搭建GitLab的持续集成环境涉及几个主要步骤,包括安装GitLab、配置GitLab、设置持续集成(CI)以及创建和运行CI/CD流水线。以下是详细的步骤指南:
sudo apt update
sudo apt upgrade
sudo apt install -y curl openssh-server ca-certificates tzdata perl
sudo apt install -y postgresql postgresql-contrib libpq-dev
sudo -u postgres createuser gitlab --createdb
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
sudo yum update
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo yum install -y postgresql postgresql-contrib
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install -y gitlab-ce
/etc/gitlab/gitlab.rb
文件,设置 external_url
为你的服务器IP地址或域名。sudo nano /etc/gitlab/gitlab.rb
修改如下行:
external_url 'http://your_server_ip'
保存并退出。
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
注册Runner:
sudo gitlab-runner register --url http://gitlab地址:端口/ --registration-token HjymWn4gEzHaVizpvG
启动并启用Runner服务:
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runners
sudo gitlab-runner start
.gitlab-ci.yml
文件:
在你的项目根目录下创建一个名为 .gitlab-ci.yml
的文件,该文件定义了CI/CD Pipeline的工作流程和任务。stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building your application here..."
test_job1:
stage: test
script:
- echo "This job tests something"
test_job2:
stage: test
script:
- echo "This job tests something, but takes more time than test_job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- sleep 20
deploy_job:
stage: deploy
script:
- echo "Deploying your application here..."
配置GitLab项目: 在GitLab项目中打开“Settings”页面,找到“CI/CD”选项,并配置Runner以及其他相关设置。
提交代码并触发CI/CD Pipeline: 将代码提交到GitLab仓库,并在GitLab界面上手动触发CI/CD Pipeline,或者配置Webhooks来自动触发Pipeline。
查看CI/CD Pipeline执行结果: 在GitLab界面上可以查看CI/CD Pipeline的执行结果,包括构建日志、测试结果等信息。
.gitlab-ci.yml
文件中,你可以定义变量和缓存,以便在构建过程中使用。通过以上步骤,你就可以在Linux上使用GitLab进行基本的持续集成了。根据你的项目需求,你可以进一步自定义 .gitlab-ci.yml
文件,添加更多的阶段和任务。