{"id":13436444,"url":"https://github.com/concourse/concourse","last_synced_at":"2025-09-09T21:05:25.594Z","repository":{"id":16203634,"uuid":"18950460","full_name":"concourse/concourse","owner":"concourse","description":"Concourse is a container-based automation system written in Go.","archived":false,"fork":false,"pushed_at":"2025-05-05T13:42:51.000Z","size":184095,"stargazers_count":7543,"open_issues_count":133,"forks_count":858,"subscribers_count":147,"default_branch":"master","last_synced_at":"2025-05-05T15:56:45.608Z","etag":null,"topics":["ci","ci-cd","concourse","containerd","containers","continuous-delivery","continuous-integration","elm","go","pipelines","runc"],"latest_commit_sha":null,"homepage":"https://concourse-ci.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/concourse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-04-19T20:45:45.000Z","updated_at":"2025-05-05T11:23:05.000Z","dependencies_parsed_at":"2023-12-16T19:39:57.037Z","dependency_job_id":"49af6abe-e947-404c-a077-9ba96d514c67","html_url":"https://github.com/concourse/concourse","commit_stats":{"total_commits":23058,"total_committers":523,"mean_commits":"44.087954110898664","dds":0.7295949345129673,"last_synced_commit":"8a68dfdd568e95f62fb888e6d0b276db0b54939e"},"previous_names":[],"tags_count":381,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concourse%2Fconcourse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concourse%2Fconcourse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concourse%2Fconcourse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concourse%2Fconcourse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/concourse","download_url":"https://codeload.github.com/concourse/concourse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253082828,"owners_count":21851167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","ci-cd","concourse","containerd","containers","continuous-delivery","continuous-integration","elm","go","pipelines","runc"],"created_at":"2024-07-31T03:00:48.406Z","updated_at":"2025-09-09T21:05:25.581Z","avatar_url":"https://github.com/concourse.png","language":"Go","readme":"# Concourse: the continuous thing-doer\n\n[![Discord](https://img.shields.io/discord/219899946617274369.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)][discord]\n[![Unit Tests](https://ci.concourse-ci.org/api/v1/teams/main/pipelines/concourse/jobs/unit/badge?title=tests)](https://ci.concourse-ci.org/teams/main/pipelines/concourse)\n[![Contributors](https://img.shields.io/github/contributors/concourse/concourse)](https://github.com/concourse/concourse/graphs/contributors)\n[![Help Wanted](https://img.shields.io/github/labels/concourse/concourse/help%20wanted)](https://github.com/concourse/concourse/labels/help%20wanted)\n\nConcourse is an automation system written in Go. It is most commonly used for\nCI/CD, and is built to scale to any kind of automation pipeline, from simple to\ncomplex.\n\n![registry-image pipeline](screenshots/registry-image-pipeline.png)\n\nConcourse is very opinionated about a few things: idempotency, immutability,\ndeclarative config, stateless workers, and reproducible builds.\n\n\u003c!--- Leaving this here for now my for my own reference\n## The road to Concourse v10\n\n[Concourse v10][v10] is the code name for a set of features which, when used\nin combination, will have a massive impact on Concourse's capabilities as a\ngeneric continuous thing-doer. These features, and how they interact, are\ndescribed in detail in the [Core roadmap: towards v10][v10] and [Re-inventing\nresource types][prototypes] blog posts. (These posts are *slightly* out of\ndate, but they get the idea across.)\n\nNotably, **v10 will make Concourse not suck for multi-branch and/or\npull-request driven workflows** - examples of *spatial* change, where the set\nof things to automate grows and shrinks over time.\n\nBecause v10 is really an alias for a ton of separate features, there's a lot\nto keep track of - here's an overview:\n\n| Feature                  | RFC              | Status |\n| ------------------------ | ---------------- | ------ |\n| `set_pipeline` step      | ✔ [#31][rfc-31]  | ✔ v5.8.0 (experimental) |\n| Var sources for creds    | ✔ [#39][rfc-39]  | ✔ v5.8.0 (experimental), TODO: [#5813][issue-5813] |\n| Archiving pipelines      | ✔ [#33][rfc-33]  | ✔ v6.5.0 |\n| Instanced pipelines      | ✔ [#34][rfc-34]  | ✔ v7.0.0 (experimental) |\n| Static `across` step     | 🚧 [#29][rfc-29] | ✔ v6.5.0 (experimental) |\n| Dynamic `across` step    | 🚧 [#29][rfc-29] | ✔ v7.4.0 (experimental, not released yet) |\n| Projects                 | 🚧 [#32][rfc-32] | 🙏 RFC needs feedback! |\n| `load_var` step          | ✔ [#27][rfc-27]  | ✔ v6.0.0 (experimental) |\n| `get_var` step           | ✔ [#27][rfc-27]  | 🚧 [#5815][issue-5815] in progress! |\n| [Prototypes][prototypes] | ✔ [#37][rfc-37]  | ⚠ Pending first use of protocol (any of the below) |\n| `run` step               | 🚧 [#37][rfc-37]  | ⚠ Pending its own RFC, but feel free to experiment |\n| Resource prototypes      | ✔ [#38][rfc-38]  | 🙏 [#5870][issue-5870] looking for volunteers! |\n| Var source prototypes    |                  | 🚧 [#6275][issue-6275] planned, may lead to RFC |\n| Notifier prototypes      | 🚧 [#28][rfc-28] | ⚠ RFC not ready |\n\nThe Concourse team at VMware will be working on these features, however in the\ninterest of growing a healthy community of contributors we would really\nappreciate any volunteers. This roadmap is very easy to parallelize, as it is\ncomprised of many orthogonal features, so the faster we can power through it,\nthe faster we can all benefit. We want these for our own pipelines too! 😆\n\nIf you'd like to get involved, hop in [Discord][discord] or leave a comment on\nany of the issues linked above so we can coordinate. We're more than happy to\nhelp figure things out or pick up any work that you don't feel comfortable\ndoing (e.g. UI, unfamiliar parts, etc.).\n\nThanks to everyone who has contributed so far, whether in code or in the\ncommunity, and thanks to everyone for their patience while we figure out how to\nsupport such common functionality the \"Concoursey way!\" 🙏\n\n[issue-5813]: https://github.com/concourse/concourse/issues/5813\n[issue-5814]: https://github.com/concourse/concourse/issues/5814\n[issue-5815]: https://github.com/concourse/concourse/issues/5815\n[issue-5870]: https://github.com/concourse/concourse/issues/5870\n[issue-5921]: https://github.com/concourse/concourse/issues/5921\n[issue-6275]: https://github.com/concourse/concourse/issues/6275\n[pr-5896]: https://github.com/concourse/concourse/pull/5896\n[rfc-27]: https://github.com/concourse/rfcs/blob/master/027-var-steps/proposal.md\n[rfc-28]: https://github.com/concourse/rfcs/pull/28\n[rfc-29]: https://github.com/concourse/rfcs/pull/29\n[rfc-31]: https://github.com/concourse/rfcs/blob/master/031-set-pipeline-step/proposal.md\n[rfc-32]: https://github.com/concourse/rfcs/pull/32\n[rfc-33]: https://github.com/concourse/rfcs/blob/master/033-archiving-pipelines/proposal.md\n[rfc-34]: https://github.com/concourse/rfcs/blob/master/034-instanced-pipelines/proposal.md\n[rfc-37]: https://github.com/concourse/rfcs/blob/master/037-prototypes/proposal.md\n[rfc-38]: https://github.com/concourse/rfcs/blob/master/038-resource-prototypes/proposal.md\n[rfc-39]: https://github.com/concourse/rfcs/blob/master/039-var-sources/proposal.md\n\n[v10]: https://blog.concourse-ci.org/2019/07/17/core-roadmap-towards-v10.html\n[prototypes]: https://blog.concourse-ci.org/2019/10/15/reinventing-resource-types.html\n---\u003e\n\n## Installation\n\nConcourse is distributed as a single `concourse` binary, available on the [Releases page](https://github.com/concourse/concourse/releases/latest).\n\nIf you want to just kick the tires, jump ahead to the [Quick Start](#quick-start).\n\nIn addition to the `concourse` binary, there are a few other supported formats.\nConsult their GitHub repos for more information:\n\n* [Docker image](https://github.com/concourse/concourse-docker)\n* [Kubernetes Helm chart](https://github.com/concourse/concourse-chart)\n* [BOSH release](https://github.com/concourse/concourse-bosh-release)\n\n\n## Quick Start\n\n```sh\n$ wget https://concourse-ci.org/docker-compose.yml\n$ docker-compose up -d\nCreating docs_concourse-db_1 ... done\nCreating docs_concourse_1    ... done\n```\n\nConcourse will be running at [http://localhost:8080](http://localhost:8080).\nYou can log in with the username/password as `test`/`test`.\n\nNext, install `fly` by downloading it from the web UI at\n[http://localhost:8080/download-fly](http://localhost:8080/download-fly) and\ntarget your local Concourse as the `test` user:\n\n```sh\n$ fly -t ci login -c http://localhost:8080 -u test -p test\nlogging in to team 'main'\n\ntarget saved\n```\n\nYou can follow our [Getting Started Tutorial](https://concourse-ci.org/getting-started.html)\nto learn how to write Concourse pipelines.\n\n### Configuring a Pipeline\n\nConcourse has no GUI for configuration. Instead, pipelines are defined in\ndeclarative YAML files:\n\n```yaml\nresources:\n- name: booklit\n  type: git\n  source: {uri: \"https://github.com/concourse/booklit\"}\n\njobs:\n- name: unit\n  plan:\n  - get: booklit\n    trigger: true\n  - task: test\n    file: booklit/ci/test.yml\n```\n\nMost operations are done via the accompanying `fly` CLI. If you've got Concourse\n[installed](https://concourse-ci.org/install.html), try saving the above example\nas `booklit.yml`, [target your Concourse\ninstance](https://concourse-ci.org/fly.html#fly-login), and then run:\n\n```sh\nfly -t ci set-pipeline -p booklit -c booklit.yml\n```\n\nThese pipeline files are self-contained, making them easily portable between\nConcourse instances.\n\n\n### Learn More\n\n* The [Official Site](https://concourse-ci.org) for documentation,\n  reference material, and example pipelines.\n* The [Getting Started Tutorial](https://concourse-ci.org/getting-started.html)\n  to learn the basics of Concourse\n* See Concourse in action with our [own pipelines](https://ci.concourse-ci.org/)\n* Hang around in the [GitHub discussions](https://github.com/concourse/concourse/discussions) or in\n  [Discord][discord]\n* See what we're working on the [project board](https://github.com/orgs/concourse/projects). \n\n\n## Contributing\n\nOur user base is basically everyone that develops software (and wants it to\nwork).\n\nIt's a lot of work, and we need your help! If you're interested, check out our\n[contributing docs](CONTRIBUTING.md).\n\n[discord]: https://discord.gg/MeRxXKW\n","funding_links":[],"categories":["Go","HarmonyOS","Shell","hacktoberfest","go","Repositories","CICD"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcourse%2Fconcourse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconcourse%2Fconcourse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcourse%2Fconcourse/lists"}