webBG - програмисти, машинно обучение, javascript, python, php, питам, говорим, публикации

Артефакт на Gitlab, преминаващ между клонове

Търся правилния или достъпен начин за обработка и съхранение на артефакти

Използвам Gitlab CI/CD като метод за планиране и разгръщане на тераформа. Имам два етапа: plan и apply.

В етап „план“ той създава файла на плана за директория на проекта и в края съхранява артефактите на всяка директория на проекта. Така че файловете на плана, които са създадени, и файл, който съдържа списък с директории, които са били стартирани.

За да могат потребителите да приложат промените, те трябва да подадат заявка за сливане и след като бъде одобрена, тя ще бъде срещу основния клон.

Това изпълнява етап apply, където в идеалния случай това, което искам да направи, е да издърпа артефакта и да го приложи.

Освен защото сега това е тръбопровод, който се движи по главния клон, няма артефакт, който да се свали.

 curl -k --location --header "PRIVATE-TOKEN:super_secret_token" "https://gitlab.my_domain.tld/api/v4/projects/2/jobs/artifacts/my_source_branch_name/download?job=terraform_plan" -o artifact.zip

Замяна на my_source_branch_name с $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME от предварително дефинираните променливи. Освен ако клонът бъде изтрит, тъй като това е опция в заявката за сливане, той не може да го изтегли.

Така че единственият ми залог е да направя нещо като външно хранилище на артефакт, където мога да предам името на клона като структура на папки? Освен ако няма нещо друго, което мога да направя с Gitlab?

Или може би просто съм се отклонил от идеи.

17.05.2021

  • Защо не изпълните plan етап също и на главния клон? Освен това generic_packages опция ли е да използвате за вас? 18.05.2021
  • Току що разгледах генеричните пакети! Това е, с което отидох в крайна сметка. Видях, че може да направи maven, nuget и т.н., но напълно замазано общо. И причината да не правя плана на main е, че не искам да стартирам отново плана срещу всяка директория. Страхотен начин да предизвикате паника, но и да коригирате дрифта. 18.05.2021

Отговори:


1

Просто потвърждавам, това беше моят отговор:

Също така, generic_packages опция ли е да използвате за вас? – Николас Пепинстер

Когато използвах генеричния пакет, използвах система за идентификация, която включваше името на клона и номер на версия, който беше ID на конвейера (за да стане уникален). И след това в конвейера мога да CURL, за да изтегля пакетите от репото, да сортирам по номера на версията и да изтегля най-новото (без да е най-новото) в моя apply етап.

18.05.2021
Нови материали

Записване на грешки — Как да записвате грешки във вашето приложение, за да ги отстраните по-късно
Записването на грешки е важна част от „обработването на грешки“. Накратко, когато възникнат определени грешки в програмите, вие искате да знаете за това. Това е особено важно при грешки. Ти..

Кратко въведение в теорията на графите
Кратко въведение в теорията на графите Втора част: внедряване на python на пълни графики В моята предишна статия въведох три основни концепции за графите: върхове, ръбове и тегла. В тази..

Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано, искам...
Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано искам да обясня защо машинното обучение има значение. За да бъда съвсем..

Какво е структурно типизиране и как Typescript го използва в своя полза?
Всички знаят тези дни, че „Typescript е строго синтактично надмножество на JavaScript и добавя незадължително статично въвеждане към езика.“. Но какво всъщност означава? Защо миграцията от..

3 начина за премахване на дубликати от масив в Javascript
Вие сте уеб разработчик? Програмист ли си? Тогава ще сте запознати с JavaScript и различните му вградени функции, методи и т.н. за различни реализации, проблеми и цели. Един от тези широко..

Архитектура и обучение на конволюционни невронни мрежи (7 точки):
Тази публикация предоставя подробности за архитектурата на Конволюционната невронна мрежа (CNN), функциите и обучението на всеки слой, завършвайки с резюме на обучението на CNN...

Създайте разширение за Chrome с помощта на Angular
Този урок е базиран на манифеста на разширението на chrome версия 3 (MV3), а също и на Angular версия 2+ (2, 3 и...). Ако не сте използвали манифест версия 3, можете да следвате този урок ,..