CI/CD (Continuous Integration / Continuous Deployment) — это практика разработки программного обеспечения, направленная на автоматизацию процессов сборки, тестирования и развертывания приложений.
Основные концепции CI/CD
- Continuous Integration (CI) — непрерывная интеграция, обеспечивающая автоматическую сборку и тестирование изменений в коде при каждом коммите.
- Continuous Delivery (CD) — автоматизированная подготовка и тестирование сборок для последующего развертывания.
- Continuous Deployment — автоматическое развертывание на продакшн-среду после успешного тестирования.
Настройка CI/CD в GitHub Actions
GitHub Actions позволяет создавать автоматизированные рабочие процессы (workflows) для сборки, тестирования и развертывания .NET-приложений.
Пример workflow для .NET-приложения
Создание файла .github/workflows/dotnet.yml
:
name: .NET CI/CD
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0'
- name: Restore dependencies
run: dotnet restore
- name: Build project
run: dotnet build --no-restore --configuration Release
- name: Run tests
run: dotnet test --no-build --configuration Release
Этот workflow запускается при каждом коммите в main
и выполняет сборку и тестирование .NET-приложения.
Настройка CI/CD в GitLab CI/CD
GitLab CI/CD использует .gitlab-ci.yml
для автоматизации процессов.
Пример .gitlab-ci.yml
для .NET-приложения
stages:
- build
- test
variables:
DOTNET_VERSION: "8.0"
before_script:
- apt-get update && apt-get install -y dotnet-sdk-$DOTNET_VERSION
build:
stage: build
script:
- dotnet restore
- dotnet build --configuration Release
artifacts:
paths:
- bin/
test:
stage: test
script:
- dotnet test --configuration Release
Этот файл описывает два этапа: build
и test
. Он загружает зависимости, собирает проект и запускает тесты.