Continuous Integration Containerized Execution Environment
$ dotnet add package ciceeCICEE is an opinionated orchestrator of continuous integration processes. CICEE executes commands in a Docker container, using the files in your project repository, and provides a convention-based structure for fulfilling dependencies.
CICEE also provides a continuous integration shell function library to support the use of shell script-based continuous integration workflows.
bash: bash shelldocker: Docker command-line interfacedotnet: .NET SDK (6.x, 7.x, 8.x, and 9.x supported)CICEE users' most common use cases:
CICEE .NET Templates
.NET solution templates are available in the
Cicee.TemplatesNuGet package. These templates provide easy templates for repository initialization which follow CICEE conventions.To install/update, execute:
dotnet new install Cicee.TemplatesAs of
Cicee.Templatesversion0.2.0, the following templates are provided:
cicee-classlib-package: Aclasslib-based Package Solution
- This template provides a base for creating libraries, distributed as NuGet packages. It includes: a source project, based upon the
classlibtemplate, a unit test project, based upon thexunittemplate, and CI scripts.cicee-webapi-service: Awebapi-based Service Solution
- This template provides a base for creating web APIs, distributed as Docker images. It includes: a source project, based upon the
webapitemplate, unit test and integration test projects, based upon thexunittemplate, and CI scripts.
dotnet tool install -g cicee
If you already have CICEE installed, but want to update to the latest release:
dotnet tool update -g cicee
Open a Bash terminal session in the root directory of the project.
Execute cicee init repository.
dotnet new tool-manifest && dotnet tool install --local cicee && dotnet cicee init repository
This adds:
Dockerfile which will provide all the tools needed to perform the project's continuous integration tasks.docker-compose files which define the continuous integration containerized execution environment.compose: Create the project's distributable artifacts. For example, render SASS to CSS, compile source code, build docker images, compress zip archives, package for NPM, etc.publish: Publish the project's distributable artifacts to their repositories. For example, push docker images, publish a package to NuGet, etc.validate: Validate the current project for correctness, completeness, or other rules. Supports automated checks which should be executed during pull request review.Open a Bash terminal session in the root directory of the project.
Execute cicee exec and provide one of the CI workflow entry points.
dotnet cicee exec --entrypoint ci/bin/validate.sh
project-metadata.json (which was created by cicee init repository). However, if there is no project-metadata.json, CICEE will read NPM's package.json, if present.
Major.Minor.Patch version.