Проект Сicada развивает систему автоматизации сборок, похожую на GitHub Actions

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3255
Зарегистрирован: 20.08.2022

#

Проект Сicada развивает систему автоматизации сборок, похожую на GitHub Actions
Дата публикации:Tue, 07 Nov 2023 16:01:40 +0300




Доступна открытая система автоматизации сборочных процессов Сicada, позволяющая на своём сервере развернуть инфраструктуру, похожую на GitHub Actions, Azure DevOps и Gitlab CI, не зависящую от облачных сервисов. Код проекта написан на языке Python и распространяется под лицензией AGPLv3.




Система способна автоматически запускать сценарии сборки и тестирования кодовых баз при срабатывании определённых событий, таких как поступление push-запроса в Git, создание релизов, открытие/закрытие issue и открытие/закрытие pull-запросов. Отличительной чертой Сicada является предоставление для определение логики работы предметно ориентированного функционального языка программирования, поддерживающего переменные, выражения, циклы, условные блоки и встроенные функции.

on git.push

fn test(compiler):
env.CC = compiler

echo Testing (compiler)
shell make clean all

let compilers = ["gcc", "clang"]

for compiler in compilers:
test(compiler)




Предлагаемые язык позволяет легко создавать обработчики, которые проблематично описать в файлах конфигурации на базе формата YAML, и даёт возможность обойтись без подключения внешних скриптов на Shell или Python. При этом реализованный подход также решает проблему с несовместимостью YAML-форматов конфигурации, используемых в разных платформах автоматизации сборок. В Сicada предлагаются независимые от платформ универсальные типы событий, которые позволяют привязать один и тот же сценарий автоматизации к разным платформам, например, обработчик push-запросов может быть прикреплён к событиям, поступающим из GitHub и Gitlab.





Особое внимание также уделяется безопасному хранению токенов и паролей, применяемых для доступа к API, репозиториям и окружениям для установки результирующих сборок. Подобная конфиденциальная информация хранится в зашифрованном виде (AES-GCM c 256-разрядным ключом) при помощи инструментария HashiCorp Vault. Для каждого репозитория и точки установки создаётся отдельный ключ шифрования, ключи автоматически обновляются каждые 30 дней, хранилище ключей запускается на отдельном сервере.



Секретные данные по умолчанию не передаются через переменные окружения, а в репозиторий открывается только доступ на чтение. Имеется встроенная защита от подстановки команд в выражения, обеспечивающая автоматическое экранирование опасных конструкций, например, выражение 'let name = "; rm -rf /"; echo Hello, (name)' не приведёт к выполнению команды "rm". Из оптимизаций отмечается встроенная система кэширования результатов компиляции и загрузки ресурсов.










Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60068

Жизнь за Нер'зула!

Ответить