composer-php - 如何使用 Satis 识别我的 Gitlab 版本而不是标签?
问题描述
当将 satis 指向 Gitlab 存储库时,它会选择一个镜像源 url 的 dist url,而不是找到 Gitlab Release 并使用 dist zip 工件。
假设您的 satis.json 如下所示:
{
"repositories": [
{ "type": "vcs", "url": "git@gitlab.com:group-name/project-name.git" },
],
"require-all": true
}
当你运行时satis build satis.json
,satis 将创建一个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 只是对 Gitlab 的 API 调用,用于生成文件的 zip,因为它们出现在 git 存储库中。
但是我正在仔细构建一个 zip 可分发文件,作为我的 CI 构建的一部分,其中包含缩小的 javascript、生成的 css 等。然后,这个 zip 可分发文件作为工件附加到 Gitlab 版本。
我希望满足找到我的 GitLab 版本并使用 dist.url 中的 zip 工件。就我而言,它看起来像这样:
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/11301246/jobs/400678589/artifacts/project-name-1.0.1.zip",
},
解决方案
推荐阅读
- ios - SideMenuController 不适用于某些视图
- java - Tomcat-KeyCloak:失败 - 在上下文路径部署应用程序,但上下文无法启动
- c# - 使用 TDD 设计 MVC 控制器进行数据库调用
- javascript - Ajax 请求一直返回 false
- c - UART 接收中断检查数据结束
- python - numpy:内容到索引,索引到内容
- vba - 从网站上抓取数据的问题
- oracle - Statspack 报告大量执行,高于 V$sql 中的总数
- raspberry-pi - restbed make install in raspberry-pi undefined reference to dlopen dlclose
- java - 在 maven-compiler-plugin 上将 Maven 从 Java 9 迁移到 Java 10 失败