github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/README.md (about)

     1  # Concourse: the continuous thing-doer.
     2  
     3  [![Discord](https://img.shields.io/discord/219899946617274369.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)][discord]
     4  [![Build](https://ci.concourse-ci.org/api/v1/teams/main/pipelines/concourse/badge)](https://ci.concourse-ci.org/teams/main/pipelines/concourse)
     5  [![Contributors](https://img.shields.io/github/contributors/concourse/concourse)](https://github.com/concourse/concourse/graphs/contributors)
     6  [![Help Wanted](https://img.shields.io/github/labels/concourse/concourse/help%20wanted)](https://github.com/concourse/concourse/labels/help%20wanted)
     7  
     8  Concourse is an automation system written in Go. It is most commonly used for
     9  CI/CD, and is built to scale to any kind of automation pipeline, from simple to
    10  complex.
    11  
    12  ![booklit pipeline](screenshots/booklit-pipeline.png)
    13  
    14  Concourse is very opinionated about a few things: idempotency, immutability,
    15  declarative config, stateless workers, and reproducible builds.
    16  
    17  ## The road to Concourse v10
    18  
    19  [Concourse v10][v10] is the code name for a set of features which, when used
    20  in combination, will have a massive impact on Concourse's capabilities as a
    21  generic continuous thing-doer. These features, and how they interact, are
    22  described in detail in the [Core roadmap: towards v10][v10] and [Re-inventing
    23  resource types][prototypes] blog posts. (These posts are *slightly* out of
    24  date, but they get the idea across.)
    25  
    26  Notably, **v10 will make Concourse not suck for multi-branch and/or
    27  pull-request driven workflows** - examples of *spatial* change, where the set
    28  of things to automate grows and shrinks over time.
    29  
    30  Because v10 is really an alias for a ton of separate features, there's a lot
    31  to keep track of - here's an overview:
    32  
    33  | Feature                  | RFC              | Status |
    34  | ------------------------ | ---------------- | ------ |
    35  | `set_pipeline` step      | ✔ [#31][rfc-31]  | ✔ v5.8.0 (experimental), TODO: [#5814][issue-5814] |
    36  | Var sources for creds    | ✔ [#39][rfc-39]  | ✔ v5.8.0 (experimental), TODO: [#5813][issue-5813] |
    37  | Archiving pipelines      | ✔ [#33][rfc-33]  | ✔ v6.5.0 |
    38  | Instanced pipelines      | ✔ [#34][rfc-34]  | 🚧 PR [#5896][pr-5896] for backend, issue [#5921][issue-5921] for UI |
    39  | Static `across` step     | 🚧 [#29][rfc-29] | ✔ v6.5.0 (experimental) |
    40  | Dynamic `across` step    | 🚧 [#29][rfc-29] | 🙏 RFC needs feedback! |
    41  | Projects                 | 🚧 [#32][rfc-32] | 🙏 RFC needs feedback! |
    42  | `load_var` step          | ✔ [#27][rfc-27]  | ✔ v6.0.0 (experimental) |
    43  | `get_var` step           | ✔ [#27][rfc-27]  | 🙏 [#5815][issue-5815] Looking for volunteers! |
    44  | [Prototypes][prototypes] | ✔ [#37][rfc-37]  | ⚠ Pending first use of protocol (any of the below) |
    45  | `run` step               | 🚧 [#37][rfc-37]  | ⚠ Pending its own RFC, but feel free to experiment |
    46  | Resource prototypes      | ✔ [#38][rfc-38]  | 🙏 [#5870][issue-5870] Looking for volunteers! |
    47  | Var source prototypes    |                  | ⚠ Needs RFC |
    48  | Notifier prototypes      | 🚧 [#28][rfc-28] | ⚠ RFC not ready |
    49  
    50  The Concourse team at VMware will be working on these features, however in the
    51  interest of growing a healthy community of contributors we would really
    52  appreciate any volunteers. This roadmap is very easy to parallelize, as it is
    53  comprised of many orthogonal features, so the faster we can power through it,
    54  the faster we can all benefit. We want these for our own pipelines too! 😆
    55  
    56  If you'd like to get involved, hop in [Discord][discord] or leave a comment on
    57  any of the issues linked above so we can coordinate. We're more than happy to
    58  help figure things out or pick up any work that you don't feel comfortable
    59  doing (e.g. UI, unfamiliar parts, etc.).
    60  
    61  Thanks to everyone who has contributed so far, whether in code or in the
    62  community, and thanks to everyone for their patience while we figure out how to
    63  support such common functionality the "Concoursey way!" 🙏
    64  
    65  [issue-5813]: https://github.com/concourse/concourse/issues/5813
    66  [issue-5814]: https://github.com/concourse/concourse/issues/5814
    67  [issue-5815]: https://github.com/concourse/concourse/issues/5815
    68  [issue-5870]: https://github.com/concourse/concourse/issues/5870
    69  [issue-5921]: https://github.com/concourse/concourse/issues/5921
    70  [pr-5896]: https://github.com/concourse/concourse/pull/5896
    71  [rfc-27]: https://github.com/concourse/rfcs/blob/master/027-var-steps/proposal.md
    72  [rfc-28]: https://github.com/concourse/rfcs/pull/28
    73  [rfc-29]: https://github.com/concourse/rfcs/pull/29
    74  [rfc-31]: https://github.com/concourse/rfcs/blob/master/031-set-pipeline-step/proposal.md
    75  [rfc-32]: https://github.com/concourse/rfcs/pull/32
    76  [rfc-33]: https://github.com/concourse/rfcs/blob/master/033-archiving-pipelines/proposal.md
    77  [rfc-34]: https://github.com/concourse/rfcs/blob/master/034-instanced-pipelines/proposal.md
    78  [rfc-37]: https://github.com/concourse/rfcs/blob/master/037-prototypes/proposal.md
    79  [rfc-38]: https://github.com/concourse/rfcs/blob/master/038-resource-prototypes/proposal.md
    80  [rfc-39]: https://github.com/concourse/rfcs/blob/master/039-var-sources/proposal.md
    81  
    82  [v10]: https://blog.concourse-ci.org/core-roadmap-towards-v10/
    83  [prototypes]: https://blog.concourse-ci.org/reinventing-resource-types/
    84  
    85  ## Installation
    86  
    87  Concourse is distributed as a single `concourse` binary, available on the [Releases page](https://github.com/concourse/concourse/releases/latest).
    88  
    89  If you want to just kick the tires, jump ahead to the [Quick Start](#quick-start).
    90  
    91  In addition to the `concourse` binary, there are a few other supported formats.
    92  Consult their GitHub repos for more information:
    93  
    94  * [Docker image](https://github.com/concourse/concourse-docker)
    95  * [BOSH release](https://github.com/concourse/concourse-bosh-release)
    96  * [Kubernetes Helm chart](https://github.com/concourse/concourse-chart)
    97  
    98  
    99  ## Quick Start
   100  
   101  ```sh
   102  $ wget https://concourse-ci.org/docker-compose.yml
   103  $ docker-compose up
   104  Creating docs_concourse-db_1 ... done
   105  Creating docs_concourse_1    ... done
   106  ```
   107  
   108  Concourse will be running at [127.0.0.1:8080](http://127.0.0.1:8080). You can
   109  log in with the username/password as `test`/`test`.
   110  
   111  Next, install `fly` by downloading it from the web UI and target your local
   112  Concourse as the `test` user:
   113  
   114  ```sh
   115  $ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
   116  logging in to team 'main'
   117  
   118  target saved
   119  ```
   120  
   121  ### Configuring a Pipeline
   122  
   123  There is no GUI for configuring Concourse. Instead, pipelines are configured as
   124  declarative YAML files:
   125  
   126  ```yaml
   127  resources:
   128  - name: booklit
   129    type: git
   130    source: {uri: "https://github.com/vito/booklit"}
   131  
   132  jobs:
   133  - name: unit
   134    plan:
   135    - get: booklit
   136      trigger: true
   137    - task: test
   138      file: booklit/ci/test.yml
   139  ```
   140  
   141  Most operations are done via the accompanying `fly` CLI. If you've got Concourse
   142  [installed](https://concourse-ci.org/install.html), try saving the above example
   143  as `booklit.yml`, [target your Concourse
   144  instance](https://concourse-ci.org/fly.html#fly-login), and then run:
   145  
   146  ```sh
   147  fly -t ci set-pipeline -p booklit -c booklit.yml
   148  ```
   149  
   150  These pipeline files are self-contained, maximizing portability from one
   151  Concourse instance to the next.
   152  
   153  
   154  ### Learn More
   155  
   156  * The [Official Site](https://concourse-ci.org) for documentation,
   157    reference material, and example pipelines (which no longer live in this repository).
   158  * The [Concourse Tutorial](https://concoursetutorial.com) by Stark & Wayne is
   159    great for a guided introduction to all the core concepts.
   160  * See Concourse in action with our [production pipelines](https://ci.concourse-ci.org/)
   161  * Hang around in the [forums](https://discuss.concourse-ci.org) or in
   162    [Discord](https://discord.gg/MeRxXKW).
   163  * See what we're working on on the [project board](https://github.com/orgs/concourse/projects). 
   164  
   165  
   166  ## Contributing
   167  
   168  Our user base is basically everyone that develops software (and wants it to
   169  work).
   170  
   171  It's a lot of work, and we need your help! If you're interested, check out our
   172  [contributing docs](CONTRIBUTING.md).
   173  
   174  [discord]: https://discord.gg/MeRxXKW