При наведении на репозиторий Gitlab в качестве удовлетворительного, он выбирает dist url, который отражает исходный URL, вместо того, чтобы находить Gitlab Release и использовать артефакт dist zip.
Допустим, ваше удовлетворительное. json выглядит следующим образом:
{
"repositories": [
{ "type": "vcs", "url": "git@gitlab.com:group-name/project-name.git" },
],
"require-all": true
}
Когда вы запускаете satis build satis.json
, для удовлетворительного создается packages.json
, который выглядит следующим образом:
{
"packages": {
"group-name/project-name": {
"v1.0.1": {
"name": "group-name/project-name",
"version": "v1.0.1",
"version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "git@gitlab.com:group-name/project-name.git",
"reference": "68da091ec3d6891e8519095a8066b28eb2261c20"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/group-name%2Fproject-name/repository/archive.zip?sha=68da091ec3d6891e8519095a8066b28eb2261c20",
"reference": "68da091ec3d6891e8519095a8066b28eb2261c20",
"shasum": ""
},
"require": {
"composer/installers": "v1.0.6"
},
"require-dev": {
"wp-coding-standards/wpcs": "^2.2"
},
"time": "2020-01-13T04:39:57+00:00",
"type": "wordpress-plugin"
}
}
}
Проблема
dist.url - это просто вызов API для Gitlab, чтобы сгенерировать zip-файл файлов в том виде, в котором они появляются в репо git.
Но я тщательно строю zip-дистрибутив как часть моих сборок CI, который содержит минимизированные javascript, сгенерированные css, et c. Этот распространяемый zip-файл затем присоединяется к Gitlab Release в качестве артефакта.
Я хочу с удовольствием найти свой GitLab Release и использовать zip-артефакт в dist.url. В моем случае это будет выглядеть примерно так:
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/11301246/jobs/400678589/artifacts/project-name-1.0.1.zip",
},