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