首页 > 解决方案 > 如何使用 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",
                },

标签: composer-phpgitlabsatis

解决方案


推荐阅读