MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Что такое Опыт работы в системе CI/CD"
Answer 1053564
CI - непрерывная интеграция, упрощенно говоря, это подход к разработке, при котором изменения в исходном коде часто отправляются на сервер и автоматизированно собираются и тестируются. CD (непрерывное развертывание), это аналогично, только помимо сборки код автоматизированно развертывается для конечного использования (например, выкладывается на веб-сервер для веб приложений, или пакуется в установочный пакет целевой ОС для десктопных приложений). Контейнер CI - видимо, просто Docker Container, в котором осуществляются эти действия, если используется Docker. Теория по CI описана по большей части здесь: Что такое непрерывная интеграция?
В качестве практического примера CI можно привести использование GitHub Actions для автоматизированного построения приложения .NET Core.
Создадим репозиторий GitHub, и заполним его тестовым проектом C# .NET Core
Перейдем на вкладку GitHub Actions
Для проекта с кодом на C# система автоматически предлагает создать Workflow .NET Core. Нажмем кнопку "Set up this workflow". Система предложит создать шаблонный файл конфигурации dotnetcore.yml:
name: .NET Core on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 2.2.108 - name: Build with dotnet run: dotnet build --configuration Release
Здесь мы видим два стандартных шага: установка .NET Core SDK нужной версии и запуск сборки с помощью команды dotnet build. Добавим два своих шага: архивацию результатов сборки и запуск получившегося приложения:
name: .NET Core on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: dotnet-version: 2.2.108 - name: Build with dotnet run: dotnet build CoreTest.sln --configuration Release - name: Archive build results uses: actions/upload-artifact@v1 with: name: Output path: NetCoreTest/bin/Release/ - name: Run run: | dotnet NetCoreTest/bin/Release/netcoreapp2.1/NetCoreTest.dll
Зафиксируем результат. Теперь после отправки каждого изменения в репозиторий мы можем автоматически видеть результаты сборки:
Эти результаты фигурируют как проверка для Pull request (на вкладке Checks) - можно сделать проверку обязательной, и тогда нельзя будет выполнить слияние изменений, если сборка проходит с ошибкой. Серьезное преимущество в том, что мы всегда можем убедится, что приложение собирается допустим на Linux, даже не имея локальной машины с этой ОС. Под капотом в данном случае не Docker, а виртуальные машины Azure, так что контейнера CI нет (есть виртуальное окружение CI).
Пример репозитория с настроенным CI: https://github.com/MSDN-WhiteKnight/CoreTest
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.