github.com/jdolitsky/cnab-go@v0.7.1-beta1/README.md (about)

     1  # cnab-go
     2  
     3  [![Build Status](https://dev.azure.com/deislabs/cnab-go/_apis/build/status/cnab-go?branchName=master)](https://dev.azure.com/deislabs/cnab-go/_build/latest?definitionId=14&branchName=master) ![Azure Pipelines coverage](https://img.shields.io/azure-devops/coverage/deislabs/cnab-go/14?logo=Azure%20Pipelines&style=flat)
     4  
     5  cnab-go is a library for building [CNAB](https://github.com/deislabs/cnab-spec) clients. It provides the building blocks relevant to the CNAB specification so that you may build tooling without needing to implement all aspects of the CNAB specification.
     6  
     7  cnab-go is currently being used by [Docker App](https://github.com/docker/app), [Duffle](https://github.com/deislabs/duffle), and [Porter](https://github.com/deislabs/porter). If you'd like to see your CNAB project listed here, please submit a PR.
     8  
     9  ### Community
    10  
    11  cnab-go is [maintained](GOVERNANCE.md) by the CNAB community. We sometimes discuss cnab-go issues during the [bi-weekly CNAB community  meeting](https://hackmd.io/s/SyGcBcwQ4), but we encourage open communication via our [issue](https://github.com/deislabs/cnab-go/issues) queue and via [PRs](https://github.com/deislabs/cnab-go/pulls). If you are interested in contributing to cnab-go, please refer to our [contributing](CONTRIBUTING.md) guidelines.
    12  
    13  ### Development
    14  
    15  #### Getting the code
    16  
    17  Cloning this repository and change directory to it:
    18  ```bash
    19  $ go get -d github.com/deislabs/cnab-go/...
    20  $ cd $(go env GOPATH)/src/github.com/deislabs/cnab-go
    21  ```
    22  
    23  #### Prerequisites
    24  
    25  You need:
    26  
    27  * make
    28  * Go
    29  
    30  #### Get dependencies
    31  
    32  Retrieve all needed packages to start developing.
    33  This will download the binaries for the linter, dep and go imports in the end it will
    34  run `dep ensure` to download all the go package dependencies
    35  
    36  ```bash
    37  $ make bootstrap
    38  ```
    39  
    40  #### Building, testing and linting
    41  
    42  Compile all the code:
    43  
    44  ```bash
    45  $ make build
    46  ```
    47  
    48  Run unit tests:
    49  
    50  ```bash
    51  $ make test
    52  ```
    53  
    54  Run integration tests:
    55  
    56  Note: The integration tests use a local docker daemon to create containers. Please ensure you have one configured before running the tests.
    57  
    58  ```bash
    59  $ make integration-test
    60  ```
    61  
    62  This will only run the linter to ensure the code meet the standard.
    63  *It does not format the code*
    64  
    65  ```bash
    66  $ make lint
    67  ```