agola

agola-ioApache-2.0长期未更新

自托管的分布式 CI/CD 平台,支持 GitHub、GitLab、Gitea 等 Git 源,用容器化方式跑流水线,适合想自己掌控构建与部署流程的团队。

Agola: CI/CD Redefined

v0.11.0发布于 2025-09-25 07:59 UTC1,629star122fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
README 未给出安装命令,仅指向 https://agola.io/tryit 与 https://agola.io/doc/
硬件要求按 README 说明

README 未说明具体硬件要求;任务在容器执行器中运行,可部署于 Kubernetes、IaaS 或裸金属。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管 CI/CD 平台,从单进程到分布式部署,用容器化 Run 跑构建与部署

自托管的分布式 CI/CD 平台,支持 GitHub、GitLab、Gitea 等 Git 源,用容器化方式跑流水线,适合想自己掌控构建与部署流程的团队。

核心能力

  • Run 工作流支持 fan-in、fan-out 与矩阵任务
  • Run 定义随代码提交进 Git 仓库,可追踪可复现
  • 支持从失败任务或从头重启 Run,复用同一提交与变量
  • 同时接入 GitHub、GitLab、Gitea 等多个 Git 提供方
  • 用 jsonnet 模板生成 Run 配置,而非扩展 YAML

容易踩的坑

README 未给出安装步骤,需先查阅官方文档;Run 定义需提交在 Git 仓库中并由 push 或 PR 触发;任务依赖容器执行器(如 Docker 或 Kubernetes),需提前准备

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.11.0
  1. v0.11.0最新正式版2025-09-25 · 2025-09-25 07:59 UTC

    v0.11.0

    • gateway: simplify mux configuration (@sgotti) #551
    • *: update dependencies (@sgotti) #550
    • *: update to go 1.25 (@sgotti) #549
    • Update to golangci-lint v2.4.0 (@sgotti) #548
    • *: update gorilla CSRF version (@sgotti) #547
    • config: validate allowed origins (@sgotti) #546
    • *: update gotests.tool to latest version (@sgotti) #545
    • *: update to go 1.24 (@sgotti) #544
    • Update to golangci-lint v2.1.6 (@sgotti) #543
    • examples: add missing web config for notification service (@sgotti) #542
    • *: update dependencies (@sgotti) #539
    • *: use log Msg when passing a string. (@sgotti) #538
    • errors: add WithAPIErrorMsgf (@sgotti) #537
    • *: update to go 1.23 (@sgotti) #535
    • errors: add WithWrapperErrorMsgf (@sgotti) #536
    • *: explicitly create services local directories (@sgotti) #534
    • services/config: check valid sqlite3 db connstring (@sgotti) #533
    • services/config: fix db config validation (@sgotti) #532
    • gateway: add detailed errors to get project response (@alessandro-sorint) #530
  2. v0.10.02025-09-25 · 2025-09-25 07:59 UTC
    查看更新说明

    v0.10.0

    • gateway: unify/improve handling of authenticated user (@sgotti) #525
    • gateway: move remaining get of current user from api to action (@sgotti) #524
    • gateway: fix commit status and run webhook deliveries api (@alessandro-sorint) #521
    • tests: fix wrong ProjectCommitStatusRedelivery test (@alessandro-sorint) #522
    • cmd/export: close file descriptor (@testwill) #516
    • objectstorage: multiple updates and changes (@sgotti) #519
    • runservice: fix objectsCleaner lock key usage (@sgotti) #520
    • util: use generic Ptr function (@sgotti) #518
    • *: update dependencies (@sgotti) #517
    • api: add some missing http content types headers. (@sgotti) #514
    • config: add docker registries auth nil check (@alessandro-sorint) #513
    • configstore: move logic from db to action handler (@sgotti) #511
    • *: update dependencies (@sgotti) #512
    • *: add detailed errors to api responses (@sgotti) #507
    • *: use do method in http handlers (@sgotti) #508
    • gateway: add action.APIErrorFromRemoteError (@sgotti) #506
    • errors: split wrapped error from APIError message (@sgotti) #505
    • configstore: move last bits of logic from api to action (@sgotti) #504
    • configstore: fix wrong error handling (@sgotti) #503
    • validation: add min/max length check to name validation (@sgotti) #499
    • *: update to go 1.22 (@sgotti) #498
    • sqlg updates (@sgotti) #495
  3. v0.9.22024-05-20 · 2024-05-20 14:32 UTC
    查看更新说明

    v0.9.2

    • api: add some missing http content types headers (@sgotti) #515
  4. v0.9.12024-05-03 · 2024-05-03 14:56 UTC
    查看更新说明

    v0.9.1

    • update golang.org/x/net to v0.24.0
    • rebuild with updated go version.
  5. v0.9.02024-05-03 · 2024-05-03 14:55 UTC
    查看更新说明

    v0.9.0

    • agolademo: use docker compose (@sgotti) #494
    • executor: add option to define docker driver network (@sgotti) #493
    • Dockerfile: agolademo: create agola directories (@sgotti) #491
    • Dockerfile: update final image (@sgotti) #489
    • notification: fix cleaners infinite loop. (@sgotti) #487
    • *: add cursor fetching to GetRuns api (@sgotti) #484
    • tests: always check testutil.Wait error (@sgotti) #485
    • tests: improve and simplify some tests (@sgotti) #483
    • tests: split tests in multiple files. (@sgotti) #482
    • *: actions: ensure a default sort direction (@sgotti) #480
    • *: commitstatus/runwebook delivery save filter inside cursor (@sgotti) #481
    • configstore: simplify/improve Get tests (@sgotti) #478
    • notification: simplify/improve Get tests (@sgotti) #479
    • tests: simplify Get API with cursor tests (@sgotti) #477
    • runservice: add AGOLA_RUN_COUNTER variable (@alessandro-sorint) #473
    • gateway: add api to redeliver a commit status delivery (@alessandro-sorint) #472
    • gateway: fix api cursors (@alessandro-sorint) #471
    • notification: fix db func GetProjectRunWebhookDeliveriesAfterSequenceByProjectID (@alessandro-sorint) #470
    • notification: fix db func GetProjectCommitStatusDeliveriesAfterSequenceByProjectID (@alessandro-sorint) #468
    • tests: use assert helpers (@sgotti) #469
    • testutil: Add NilError helper to log detailed test errors (@sgotti) #466
    • testutil: add detailed errors for zerolog output in tests (@sgotti) #465
    • notification: rename GetProjectRunWebhookDeliveriesAfterSequence func (@alessandro-sorint) #467
    • gateway: add api to get commit status deliveries (@alessandro-sorint) #460
    • runservice: remove time.sleep from tests (@sgotti)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Agola

    Build Status Discourse

    CI/CD redefined

    For an introduction to agola you can take a look at this post

    Try it

    See the agolademo example

    Features

    • Easy to install and manage.
    • Scalable and High Available: go from a single instance (single process) deployment to a distributed deployment.
    • Deploy anywhere: Kubernetes, IaaS, bare metal and execute the "tasks" anywhere (currently containers executors like docker or orchestrators and Kubernetes, but easily extensible to future technologies or VMs instead of containers).
    • Support any language, deployment system etc... (just use the right image)
    • Integrate with multiple git providers at the same time: you could add repos from github, gitlab, gitea (and more to come) inside the same agola installation.
    • Use it to manage the full development lifecycle: from build to deploy.
    • Tasks Workflows (that we called Runs) with ability to achieve fan-in, fan-out, matrixes etc..., everything containerized to achieve maximum reproducibility.
    • Git based workflow: the run definition is committed inside the git repository (so everything is tracked and reproducible). A run execution is started by a git action (push, pull-request).
    • Design it with the ability to achieve at most once runs: during a deployment to production we don't want multiple concurrent execution of the deploy...
    • Restartable and reproducible Runs (restart a run from scratch or from failed tasks using the same source commit, variables etc...)
    • User Direct Runs: give every user the power to test their software using the same run definition used when pushing to git/opening a pull request inside the Agola installation with just one command like if they were running tests locally (without requiring a super powerful workstation).
    • Testable "Runs" (what is a CI/CD environment if you cannot test your changes to the Runs definitions?): use the same run definition but use a powerful secrets and variables system to access different resources (environments, docker registries etc...).
    • Don't try to extend YAML to be a templating language but use a real templating language (as of now jsonnet) to easily generate the run configuration without side effects.
    • An advanced permissions system (work in progress).
    • Dependency Caching to speed up tasks

    Documentation

    https://agola.io/doc/

    Local development

    See how to develop agola

    Contributing to Agola

    Agola is an open source project under the Apache 2.0 license, and contributions are gladly welcomed! To submit your changes please open a pull request.

    Contacts

    • For bugs and feature requests file an issue
    • For general discussion about using and developing Agola, join the agola forum