Utility for sequential startup pipeline stages gitlab-ci
|
преди 2 години | |
---|---|---|
COPYNG | преди 2 години | |
Readme.Ru.md | преди 2 години | |
Readme.md | преди 2 години | |
httpreq.go | преди 2 години | |
main.go | преди 2 години | |
osenv.go | преди 2 години | |
slicestring.go | преди 2 години |
Как-то раз на собеседовании мне не поверили, что я написал это, потому что не смог вспомнить супер-важное свойство языка го.
Хоть это и гавнокод по исполнению, пусть лежит в качестве пруфа
:)
Так как это дело проектировалось под нужды конкретного проекта, в нём затесались не нужные куски.
Общий флоу:
создаём новую ветку
запускаем пайплайн
в цикле проверяем статусы и там если то, то другое как везде
Что с этм делать:
httpreq.go
:
По хорошему надо собрать в одну функцию и потом переписать в мейне, отличия там только в методе по сути, чтоб его не пробрасывать?) А и таймаутов не хватает, да, можно прокинуть флагом
main.go
:
headers
- тут надо вписать в PRIVATE-TOKEN
значение гитлаб-токена
envs
(структура) и env
реализация - только если собираешься что-то пробро-
сить, а так можно вырезать
myUsage
придётся добавить флагов, например для проброса того же токена
и urlstring
, рекомендую если пусто постараться достать из окружения
flag.StringVar(&branch, "b")
по умолчанию берёт ветку девелоп, наверно
стоит поставить master
if "build" == args[i]
проверка на наличие стадии билда также не имеет смыс-
ла для широких масс
data := map[string]interface{}{
- вот тут дата для пробрасывания кастом-енв-
ов, конечно можно вырезать, но лучше если ничего не указано кидать ниже
в функциях нулину
И ОСНОВНОЙ ЦИКЛ НАДО БЫ НА КЕЙСАХ СДЕЛАТЬ А ТО ТАК НЕ КРАСИВО
osenv.go
:
Тут легко разобраться
slicestring.go
:
Тут тоже легко