Concourse

Concourse 是一个用 Go 和 Elm 编写的基于容器的持续集成专家。(Concourse is a container-based continuous thing-doer written in Go and Elm.)

Github stars Tracking Chart

Concourse: the continuous thing-doer(大厅:持续集成专家)

Concourse 是一个用 Go 编写的自动化系统。 它最常用于 CI/CD,可以扩展到任何类型的自动化管道,从简单到复杂。

Concourse 对一些事情非常自以为是:幂等性,不变性,声明性配置,无状态工作者和可重现的构建。

安装

Concourse 是作为单个 concourse 二进制文件分发的,可在“下载”页面上获得。

如果您想仔细了解,请跳到快速启动

除了 concourse 二进制文件之外,还有一些其他支持的格式。 有关更多信息,请参阅他们的 GitHub 存储库:

快速启动

Concourse 将在 127.0.0.1:8080 运行。 您可以使用 test/test 作为用户名/密码登录。

接下来,通过从 Web UI 下载并安装 fly 作为测试用户来定位您当地的Concourse:

$ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
logging in to team 'main'

target saved

配置管道

没有用于配置 Concourse 的 GUI。 而是将管道配置为声明性 YAML 文件:

resources:
- name: booklit
  type: git
  source: {uri: "https://github.com/vito/booklit"}

jobs:
- name: unit
  plan:
  - get: booklit
    trigger: true
  - task: test
    file: booklit/ci/test.yml

大多数操作都是通过随附的 fly CLI 完成的。 如果您已安装 Concourse,请尝试将上述示例保存为 booklit.yml,定位您的 Concourse 实例,然后运行:

fly -t $target set-pipeline -p booklit -c booklit.yml

这些管道文件是自包含的,最大化了从一个 Concourse 实例到下一个 Concourse 实例的可移植性。

学到更多

Main metrics

Overview
Name With Ownerconcourse/concourse
Primary LanguageGo
Program languageMakefile (Language Count: 13)
PlatformDocker, Linux, Mac, Windows
License:Apache License 2.0
所有者活动
Created At2014-04-19 20:45:45
Pushed At2025-04-22 12:35:08
Last Commit At2025-04-11 09:04:37
Release Count381
Last Release Namev7.13.1 (Posted on )
First Release Namev0.1.0-rc.1 (Posted on )
用户参与
Stargazers Count7.5k
Watchers Count147
Fork Count856
Commits Count27.1k
Has Issues Enabled
Issues Count5001
Issue Open Count93
Pull Requests Count2725
Pull Requests Open Count44
Pull Requests Close Count484
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Concourse: the continuous thing-doer.

Concourse is an automation system written in Go. It is most commonly used for
CI/CD, and is built to scale to any kind of automation pipeline, from simple to
complex.

booklit pipeline

Concourse is very opinionated about a few things: idempotency, immutability,
declarative config, stateless workers, and reproducible builds.

Installation

Concourse is distributed as a single concourse binary, available on the Releases page.

If you want to just kick the tires, jump ahead to the Quick Start.

In addition to the concourse binary, there are a few other supported formats.
Consult their GitHub repos for more information:

Quick Start

$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1    ... done

Concourse will be running at 127.0.0.1:8080. You can
log in with the username/password as test/test.

Next, install fly by downloading it from the web UI and target your local
Concourse as the test user:

$ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
logging in to team 'main'

target saved

Configuring a Pipeline

There is no GUI for configuring Concourse. Instead, pipelines are configured as
declarative YAML files:

resources:
- name: booklit
  type: git
  source: {uri: "https://github.com/vito/booklit"}

jobs:
- name: unit
  plan:
  - get: booklit
    trigger: true
  - task: test
    file: booklit/ci/test.yml

Most operations are done via the accompanying fly CLI. If you've got Concourse
installed, try saving the above example
as booklit.yml, target your Concourse
instance
, and then run:

fly -t $target set-pipeline -p booklit -c booklit.yml

These pipeline files are self-contained, maximizing portability from one
Concourse instance to the next.

Learn More

Contributing

Our user base is basically everyone that develops software (and wants it to
work).

It's a lot of work, and we need your help! If you're interested, check out our
contributing docs.