---
# 
# 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://travis-ci.org/cloudposse/build-harness.svg?branch=master"
    url: "https://travis-ci.org/cloudposse/build-harness"
  - 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"

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` 

  ```
  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"
