Автоматизация процесса сборки с помощью CAKE.pptx
- Количество слайдов: 11
Автоматизация процесса сборки с помощью CAKE Алексей Харлов Разработчик в команде Диадок Проект компании
Что такое CAKE?
CAKE: • Кросплатформенный инструмент для упрощения просесса сборки проекта • Open-Source • C# DSL • Расширяемый (addins, tools)
Что может CAKE? • Под капотом – компилятор Roslyn • Из коробки – работа с MSBuild/XBuild, Nuget, Chocolatey, ILMerge, Sign. Tool, NUnit/XUnit, Specflow, Xml, Wi. X, NSYS, Octopus, Opencover, Resharper, Appveyor/Travis. CI и др. • Больше действий с помощью Addins и Tools: Cmake, Apple. Simulator, IIS/Web. Deploy, Git, Hockey. App, Raygun, Webpack, Npm, Node, Sql. Server, XDT, Xcode, Yaml, Json и др.
Как начать работать с CAKE? • Скачать бутстраппер build. ps 1 Invoke-Web. Request http: //cakebuild. net/download/bootstrapper/win dows -Out. File build. ps 1 • Создать скрипт build. cake Task(“Default”). Does( ( ) => Information(“Hello, world!”) ); Run. Target(“Default”); • Запустить бутстраппер. build. ps 1
Условия и зависимости между задачами Task(“First”). With. Criteria(( )=>Date. Time. Now. Second%2==0). Does(( ) => {}); Task(“Second”). Is. Dependent. On(“First”). Does( ( ) => {} ); Run. Target(“Second”);
Обработка ошибок Task(“First”). Does(( ) => {}). On. Error(exception => {}); Task(“Second”). Continue. On. Error(). Does(( ) => {}); Task(“Third”). Does(( ) => {}). Finally(( ) => {});
Препроцессор • #addin nuget: ? package=Cake. Foo&version=1. 2 • #addin nuget: https: //myget. org/Cake/? package=Cake. Foo • #load “utilities. cake” • #reference “bin/myassembly. dll” • #tool nuget: ? package=Cake. Foo • #break
Что в CAKE мы использовали для сборки Diadoc. SDK • Генерация версии (Cake. Git) • Nuget • Генерация protobuf-классов • ILMerge • App. Veyor • Cake. CMake
Ссылки • http: //cakebuild. net/docs • https: //github. com/diadocsdk-csharp • https: //github. com/diadocsdk-cpp • https: //github. com/diadocsdk-java
ВОПРОСЫ? Харлов Алексей Разработчик в команде Диадок akharlov@skbkontur. ru diadoc. ru Проект компании
Автоматизация процесса сборки с помощью CAKE.pptx