Crates.io | ci-generate |
lib.rs | ci-generate |
version | 0.5.3 |
source | src |
created_at | 2023-11-09 08:31:15.33602 |
updated_at | 2023-11-09 08:31:15.33602 |
description | Generate a new project for some build systems with the use of templates. |
homepage | https://github.com/SoftengPoliTo/ci-generate |
repository | https://github.com/SoftengPoliTo/ci-generate |
max_upload_size | |
id | 1029941 |
size | 158,851 |
This tool generates either new projects for some build systems or configuration files for some Continuous Integration with the use of templates.
Templates define the layout for a project and allow developers to insert data at runtime.
Each template contains all files necessary to build a project with a build system, in addition to Continuous Integration and Docker files used to run tests and implement further checks.
Build system | Languages | Project template | CI style checks | CI build | CI test | CI coverage upload | CI static analysis | CI dynamic analisys | CI license checks |
---|---|---|---|---|---|---|---|---|---|
meson | C / C++ | provided | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
poetry | Python | provided | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :white_check_mark: | :heavy_check_mark: |
maven | Java | provided | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :white_check_mark: | :heavy_check_mark: |
cargo | Rust | offloaded | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
yarn | Javascript / Typescript | offloaded | :x: | :heavy_check_mark: | :x: | :x: | :x: | :white_check_mark: | :heavy_check_mark: |
:white_check_mark:: Not necessary for the considered language
To see the list of supported commands, run: ci-generate --help
Each command has an optional argument to define a license and an optional argument to
override the project name instead of using the last component of the project-path.
The default value for the license argument is MIT
.
$ ci-generate cargo [--license LICENSE --name NAME --branch GITHUB_BRANCH] project-path
$ ci-generate maven [--license LICENSE --name NAME --branch GITHUB_BRANCH] project-group project-path
$ ci-generate meson [--kind meson-project-kind] [--license LICENSE --name NAME --branch GITHUB_BRANCH] project-path
Admitted values for the kind
argument:
c
c++
$ ci-generate poetry [--license LICENSE --name NAME --branch GITHUB_BRANCH] project-path
$ ci-generate yarn [--license LICENSE --name NAME --branch GITHUB_BRANCH] project-path
It is possible to save a config.toml
in ${XDG_CONFIG_HOME}/ci-generate
(Usually ~/.config/ci-generate
) with overrides for
all the default and optional values, e.g:
[default]
license = "BSD-3-Clause"
[meson]
kind = "c++"
Will override the default license
and meson.kind
configuration items and it would be equivalent to call:
$ ci-generate meson -k c++ -l BSD-3-Clause
The cli arguments take priority over the built-in defaults and the config.toml
overrides so
$ ci-generate meson -l LGPL-2.1
Would take the kind = c++
from the config.toml
and LGPL-2.1
from the command line.
Released under the MIT License.