Getting Started With Schematics
This repository is a basic Schematic implementation that serves as a starting point to create and publish Schematics to NPM.
Testing
To test locally, install @angular-devkit/schematics-cli
globally and use the schematics
command line tool. That tool acts the same as the generate
command of the Angular CLI, but also has a debug mode.
Check the documentation with
schematics --help
Unit Testing
npm run test
will run the unit tests, using Jasmine as a runner and test framework.
Publishing
To publish, simply do:
npm run build
npm publish
That's it!
Available schematics
Pull Request Template
- Description: Enables having a standard format when doing Pull Request
- Command:
schematics @guidesmiths/cuckoojs-schematics:pr-template
- Parameters:
Name | Description | Supported values | Default value |
---|
gitProvider | Git provider where repo is hosted | github , azuredevops | |
Dockerfile
- Description: Created a Dockerfile for your build type
- Command:
schematics @guidesmiths/cuckoojs-schematics:dockerfile
- Parameters:
Name | Description | Supported values | Default value |
---|
directory | Directory where files will be created | valid folder | . |
buildType | Specify the build process | github , azuredevops | |
nodeVersion | Specify the NodeJS version to use | 18 , 16 , 14 , 12 | |
Gitignore
- Description: Created a Gitignore file with common files
- Command:
schematics @guidesmiths/cuckoojs-schematics:gitignore
- Parameters:
Name | Description | Supported values | Default value |
---|
directory | Directory where files will be created | valid folder | . |
Commitlint
- Description: Config commit message pattern for your commits
- Command:
schematics @guidesmiths/cuckoojs-schematics:commitlint
- Parameters:
Name | Description | Supported values | Default value |
---|
directory | Directory where files will be created | valid folder | . |
Continuous Integration
- Description: Config basic CI pipeline (docker build and push)
- Command:
schematics @guidesmiths/cuckoojs-schematics:ci
- Parameters:
Name | Description | Supported values | Default value |
---|
ciProvider | CI provider | github , azuredevops | |
dockerRegistry | Docker registry to push image or service connection if AzureDevOps | string | |
imageName | Name of the docker image | string | |
Helm chart
- Description: Create a helm chart to deploy on kubernetes
- Command:
schematics @guidesmiths/cuckoojs-schematics:helm
- Parameters:
Name | Description | Supported values | Default value |
---|
serviceName | Name of the resource to deploy | string | |
imageName | Docker image to be deployed | string | |
resourcesLimitCpu | Maximum cpu used by each pod | number | 100 |
resourcesLimitMemory | Maximum memory used by each pod | number | 128 |
resourcesRequestCpu | Requested cpu used by a pod to be launched | number | 100 |
resourcesRequestMemory | Requested memory used by a pod to be launched | number | 128 |
autoscalingEnabled | Enable autoscaling features on the pods | true , false | true |
autoscalingReplicasMin | Autoscaled minimum replicas | number | 1 |
autoscalingReplicasMax | Autoscaled maximum replicas | number | 5 |
autoscalingTargetCpu | Target cpu used to trigger autoscaling | number | 75 |
ingressController | Ingress controller to be used | generic , traefik | generic |
tlsCertManager | TLS certificate manager to be used | none , certManager | none |
domainName | Domain name for the service | string | chart-example.local |