forked from cloudposse/build-harness
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.yaml
141 lines (115 loc) · 4.51 KB
/
README.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
---
#
# This is the canonical configuration for the `README.md`
# Run `make readme` to rebuild the `README.md`
#
# Name of this project
name: Build Harness
# Logo for this project
#logo: docs/logo.png
# License of this project
license: "APACHE2"
# Copyrights
copyrights:
- name: "Cloud Posse, LLC"
url: "https://cloudposse.com"
year: "2016"
# Canonical GitHub repo
github_repo: cloudposse/build-harness
# Badges to display
badges:
- name: "Build Status"
image: "https://github.com/cloudposse/build-harness/workflows/docker/badge.svg?branch=master"
url: "https://github.com/cloudposse/build-harness/actions?query=workflow%3Adocker"
- name: "Latest Release"
image: "https://img.shields.io/github/release/cloudposse/build-harness.svg"
url: "https://github.com/cloudposse/build-harness/releases/latest"
- name: "Slack Community"
image: "https://slack.cloudposse.com/badge.svg"
url: "https://slack.cloudposse.com"
- name: "Discourse Forum"
image: "https://img.shields.io/discourse/https/ask.sweetops.com/posts.svg"
url: "https://ask.sweetops.com/"
related:
- name: "Packages"
description: "Cloud Posse installer and distribution of native apps"
url: "https://github.com/cloudposse/packages"
- name: "Dev Harness"
description: "Cloud Posse Local Development Harness"
url: "https://github.com/cloudposse/dev"
# References
references:
- name: "Wikipedia - Test Harness"
description: 'The `build-harness` is similar in concept to a "Test Harness"'
url: "https://en.wikipedia.org/wiki/Test_harness"
# Screenshots
screenshots:
- name: "demo"
description: "Example of using the `build-harness` to build a docker image"
url: "https://cdn.rawgit.com/cloudposse/build-harness/master/docs/demo.svg"
# Short description of this project
description: |-
This `build-harness` is a collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more.
It's designed to work with CI/CD systems such as GitHub Actions, Codefresh, Travis CI, CircleCI and Jenkins.
# Introduction to the project
#introduction: |-
# This is an introduction.
# How to use this project
usage: |-
At the top of your `Makefile` add, the following...
```make
-include $(shell curl -sSL -o .build-harness "https://git.io/build-harness"; echo .build-harness)
```
This will download a `Makefile` called `.build-harness` and include it at run-time. We recommend adding the `.build-harness` file to your `.gitignore`.
This automatically exposes many new targets that you can leverage throughout your build & CI/CD process.
Run `make help` for a list of available targets.
**NOTE:** the `/` is interchangable with the `:` in target names
## GitHub Actions
The `build-harness` is compatible with [GitHub Actions](https://github.com/features/actions).
Here's an example of running `make readme/lint`
```yaml
name: build-harness/readme/lint
on: [pull_request]
jobs:
build:
name: 'Lint README.md'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: cloudposse/build-harness@master
with:
entrypoint: /usr/bin/make
args: readme/lint
```
# Example usage
examples: |-
Here are some real world examples:
- [`github-authorized-keys`](https://github.com/cloudposse/github-authorized-keys/) - A Golang project that leverages `docker/%`, `go/%`, `travis/%` targets
- [`charts`](https://github.com/cloudposse/charts/) - A collection of Helm Charts that leverages `docker/%` and `helm/%` targets
- [`bastion`](https://github.com/cloudposse/bastion/) - A docker image that leverages `docker/%` and `bash/lint` targets
- [`terraform-null-label`](https://github.com/cloudposse/terraform-null-label/) - A terraform module that leverages `terraform/%` targets
# How to get started quickly
quickstart: |-
Here's how to get started...
1. `git clone https://github.com/cloudposse/build-harness.git` to pull down the repository
2. `make init` to initialize the [`build-harness`](https://github.com/cloudposse/build-harness/)
# Other files to include in this README from the project folder
include:
- "docs/targets.md"
- "docs/extensions.md"
# Contributors to this project
contributors:
- name: "Erik Osterman"
github: "osterman"
- name: "Igor Rodionov"
github: "goruha"
- name: "Andriy Knysh"
github: "aknysh"
- name: "Sarkis"
github: "sarkis"
- name: "Alexander Babai"
github: "alebabai"
- name: "Jon Boulle"
github: "jonboulle"
- name: "Marcin Brański"
github: "3h4x"