在本初学者指南中学习持续集成/持续交付(CI/CD)的基础知识,包括 CI/CD 组件是什么以及如何创建它们。
想象一个工作流,其中每次代码更改都会自动构建、测试并部署给用户。这就是持续集成/持续交付(CI/CD)的强大之处!CI/CD 帮助您及早发现错误、确保代码质量,并更快、更频繁地交付软件。
极狐GitLab CI/CD 是一个强大的集成系统,内置在 GitLab 中。它提供了一种无缝的体验,可以自动化整个软件开发生命周期。使用 极狐GitLab CI/CD,您可以:
.gitlab-ci.yml
:位于项目根目录的 YAML 文件,定义了 CI/CD 流水线,包括阶段(stages)、作业(jobs)和运行器(runners)。开始使用 极狐GitLab CI 非常简单。以下是一个基本的 .gitlab-ci.yml
文件示例:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Building the application..."
test_job:
stage: test
script:
- echo "Running tests..."
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
environment:
name: production
此配置定义了三个阶段:“build”、“test”和“deploy”。每个阶段包含一个执行简单脚本的作业。
让我们看一些实例。
以下流水线定义使用 npm 构建和测试 Node.js 应用程序,并使用 dpl
将其部署到 Heroku。流水线的部署阶段使用了 极狐GitLab CI/CD 变量,该功能允许开发者存储敏感信息(如凭据)并在 CI/CD 流程中安全使用。在此示例中,用于部署到 Heroku 的 API 密钥存储在变量 $HEROKU_API_KEY
中,供 dpl
工具使用。
stages:
- build
- test
- deploy
build:
stage: build
image: node:latest
script:
- npm install
- npm run build
test:
stage: test
image: node:latest
script:
- npm run test
deploy:
stage: deploy
image: ruby:latest
script:
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
GitLab 还提供了 CI/CD 环境的概念。此功能允许用户跟踪从 CI/CD 到基础设施目标的部署。在以下示例中,流水线为预发布和生产环境添加了带有 environment
属性的阶段。deploy_staging
阶段始终运行其脚本,而 deploy_production
阶段需要手动批准,以防止意外部署到生产环境。
stages:
- build
- test
- deploy_staging
- deploy_production
build:
# ...
test:
# ...
deploy_staging:
stage: deploy_staging
script:
- echo "Deploying to staging..."
environment:
name: staging
deploy_production:
stage: deploy_production
script:
- echo "Deploying to production..."
environment:
name: production
when: manual # 需要手动批准
GitLab Auto DevOps 通过提供预定义的配置来自动构建、测试和部署您的应用程序,从而简化 CI/CD。它利用最佳实践和行业标准来优化您的工作流。
启用 Auto DevOps:
1、进入项目的 Settings > CI/CD > General pipelines。
2、启用 Auto DevOps 选项。
Auto DevOps 会自动检测项目的语言和框架,并配置必要的构建、测试和部署阶段。您甚至不需要创建 .gitlab-ci.yml
文件。
CI/CD 目录是一个包含已发布 CI/CD 组件的项目列表,可用于扩展您的 CI/CD 工作流。任何人都可以创建组件项目并将其添加到 CI/CD 目录,或贡献现有项目以改进可用组件。您可以在 GitLab.com 的 CI/CD 目录 中找到已发布的组件。
教程:如何设置您的第一个 极狐GitLab CI/CD 组件
您还可以创建自己的 CI 模板,以标准化和跨多个项目复用 CI/CD 配置。这有助于保持一致性并减少重复。
创建 CI 模板:
在专用项目或存储库中创建 .gitlab-ci.yml
文件。
在模板中定义您的 CI/CD 配置。
在项目的 .gitlab-ci.yml
文件中,使用 include
关键字引用模板。
极狐GitLab CI/CD 是一个强大的工具,可以改变您的开发工作流。通过理解 CI/CD 的概念、配置流水线,并利用 Auto DevOps、CI/CD 目录和 CI 模板等功能,您可以自动化整个软件开发生命周期,并更快、更高效地交付高质量软件。