Releases: cloudposse/build-harness
Releases · cloudposse/build-harness
0.2.1
what
- Check
Dockercredentials indocker:login - Don't login to
Dockerif credentials are missing
why
- For external PRs (not originating from the original repo), for security reasons CI environments like
Travisdon't provide the ENV vars specified in repo Settings, andDockerlogin fails
$ make docker:login
DOCKER_HUB_USERNAME not defined in docker:login
make: *** [docker:login] Error 1
The command "make docker:login" failed and exited with 2 during .
Add support of readme generation
What
- Support of README generation
- Support pluggable datasources (check how we deal with
make&terraformprojects) - Generate readme with one command
Why
- We have standard parts in readme files.
- Different projects need different way to collect data for templates
- Unify way to generate readme independent of project type
How to use
- Create
Makefilein repo root dir ( Example https://github.com/cloudposse/terraform-aws-elastic-beanstalk-environment/blob/feature-support-readme-generation/Makefile ) - Run
$ make readme:initto fetch basic.README.md - Customize
.README.mdtemplate as you need - Run
$ make readme:buildto generateREADME.mdbased on.README.md
Avaliable placeholders
{{ (datasource "git").name }}- Repository name{{ (datasource "git").url }}- Repository URL{{ (datasource "section").help }}- Cloudpossecontact ustext{{ (datasource "section").contributing }}- Cloudpossecode of conductrules{{ (datasource "license").apache2 }}- Cloudposseshort licensetext{{ (datasource "section").about }}- Cloudposseabouttext{{ (datasource "section").warning }}- WarningDO NOT EDIT README.md{{- (datasource "contributor").erik }}- Erik's contributor card{{- (datasource "contributor").igor }}- Igor's contributor card{{- (datasource "contributor").andrew }}- Andrew contributor card{{- (datasource "contributor").konstantin }}- Konstantin's contributor card{{- (datasource "contributor").sergey }}- Sergey's contributor card{{- (datasource "contributor").valeriy }}- Valeriy's contributor card{{- (datasource "contributor").vladimir }}- Vladimir's contributor card{{- (datasource "contributor")._links }}- Links to github profiles and images to contributors (Required if at least one contributor specified in README){{ (datasource "terraform").input }}- Terraform module input variables table{{ (datasource "terraform").output }}- Terraform module outputs table{{ (datasource "make").help }}- Make targets list with descriptions (based onmake help)
Under the hood
- Gomplate as cli tool for gotempale
- Terraform docs as tool to parse terraform module and get input\output
Example
cloudposse/terraform-aws-elastic-beanstalk-environment#19
#35
Add Support for Terraform Lint Checking
what
- Validate code has been lint tested
- Validate plugins are downloadable
- Validate modules are downloadable
- Validate code is syntactically correct
why
- Improve overall code quality/consistency
demo
With broken formatting:
https://travis-ci.org/cloudposse/terraform-null-label/builds/282578671

After fixing formatting:
https://travis-ci.org/cloudposse/terraform-null-label/builds/282581055
