在Ubuntu上实践GitLab CI/CD涉及几个关键步骤,包括安装和配置GitLab Runner、创建和配置.gitlab-ci.yml
文件、以及设置CI/CD流程。以下是一个详细的指南:
安装和配置GitLab Runner
-
安装GitLab Runner:
在Ubuntu上安装GitLab Runner可以通过以下命令完成:
docker pull gitlab/gitlab-runner:latest
然后,运行以下命令来启动Runner容器:
docker run -d --name gitlab-runner --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v gitlab-runner-config:/etc/gitlab-runner \ gitlab/gitlab-runner:latest
-
注册GitLab Runner:
首先,进入GitLab项目的
Settings → CI/CD → Runners
页面,复制URL和Token。然后,在Runner容器内执行注册命令:docker exec -it gitlab-runner gitlab-runner register \ --non-interactive \ --executor "docker" \ --docker-image alpine:latest \ --url "http://gitlab.com" \ --registration-token "YOUR_REGISTRATION_TOKEN" \ --description="docker-runner" \ --tag-list "newdocker" \ --run-untagged="true" \ --locked="false" \ --docker-volumes "/var/run/docker.sock:/var/run/docker.sock" \ --docker-privileged="true" \ --access-level="not_protected"
创建和配置.gitlab-ci.yml
文件
在项目根目录下创建一个名为.gitlab-ci.yml
的文件,用于定义CI/CD流程。以下是一个基本的示例:
stages: - build - test - deploy build_job: stage: build script: - echo "Building the project..." - make test_job: stage: test script: - echo "Running tests..." - ./run_tests.sh deploy_job: stage: deploy script: - echo "Deploying the application..." - scp PROJECT_DIR/* user@remote:/path/to/deploy only: - master
触发CI/CD流程
-
提交并推送代码:
将
.gitlab-ci.yml
文件添加到Git仓库中,并将其推送到GitLab服务器上。 -
运行CI/CD流水线:
在GitLab项目页面的侧边栏中,选择“CI/CD”,然后点击“Run Pipeline”按钮。GitLab将根据
.gitlab-ci.yml
文件的配置自动构建、测试和部署应用程序。 -
查看流水线结果:
流水线运行后,可以在GitLab项目页面查看构建过程和结果,包括构建日志、测试报告以及部署状态。
高级配置
- 使用变量:在
.gitlab-ci.yml
文件中定义变量,如API密钥、服务器地址等,以提高配置的灵活性和安全性。 - 缓存:使用缓存功能来加速构建过程,避免每次构建时重新下载依赖项。
- 依赖关系:明确指定任务之间的依赖关系,确保任务按正确的顺序执行。
- 条件执行:使用
only
和except
关键字来限制任务的执行条件,如仅在特定分支上执行某些任务。
通过以上步骤,你可以在Ubuntu上成功配置和使用GitLab CI/CD来实现自动化构建、测试和部署流程。根据项目的具体需求,你可以进一步定制和扩展CI/CD流程。