Получение версии следующего тега с использованием релизов semanti c - PullRequest
1 голос
/ 06 марта 2020

Привет, я использую релиз semanti c для управления версиями в моем репо. В моем Gitlab, когда я объединяю свою ветку с master, мой тег увеличивается в соответствии с коммитом, и он работает нормально. Есть ли способ для меня, чтобы получить "следующую версию тега", который придет до слияния. Я хочу записать следующую версию в файл перед объединением

Пробовал с помощью exe c, но, похоже, он не работает

Я пытался использовать exe c, но exe c не бежит за мной (Я новичок в semanti c релиз, я, должно быть, где-то что-то делаю не так)

Не могли бы вы направить меня sh в правильном направлении:)

Мой скрипт gitlab Ci:

semantic_release:
stage: Tag
image: node:12.16
variables:
GITLAB_TOKEN: $TOKEN_ACCESS
before_script:
- npm install -g semantic-release/exec
- npm install -g semantic-release @semantic-release/gitlab-config
script:
- semantic-release -e @semantic-release/gitlab-config @semantic-release/exec
only:
- master

Это мой пакет. json:

{
  "name": "@semantic-release/npm",
  "description": "semantic-release",
  "version": "0.0.0-development",
  "author": "",
  "release": {
    "analyzeCommits": "@semantic-release/commit-analyzer",
    "generateNotes": "@semantic-release/release-notes-generator",
    "publish": "@semantic-release/gitlab",
    "success": false,
    "fail": false,
    "branches": [
      "master"
    ],
    "npmPublish": false
  },
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    ["@semantic-release/exec", {
      "prepareCmd": "./my-build-script.sh ${nextRelease.version}"
    }]
  ]
}
1:30pm
[7:55:10 AM] [semantic-release] › ✔  Completed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[7:55:10 AM] [semantic-release] › ℹ  The next release version is 0.2.0
[7:55:10 AM] [semantic-release] › ℹ  Start step "verifyRelease" of plugin "[Function: verifyRelease]"
[7:55:10 AM] [semantic-release] › ✔  Completed step "verifyRelease" of plugin "[Function: verifyRelease]"
[7:55:10 AM] [semantic-release] › ℹ  Start step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[7:55:10 AM] [semantic-release] › ✔  Completed step "generateNotes" of plugin "@semantic-release/release-notes-generator"
[7:55:10 AM] [semantic-release] › ℹ  Start step "prepare" of plugin "[Function: prepare]"
[7:55:10 AM] [semantic-release] › ✔  Completed step "prepare" of plugin "[Function: prepare]"
[7:55:12 AM] [semantic-release] › ✔  Created tag v0.2.0
[7:55:12 AM] [semantic-release] › ℹ  Start step "publish" of plugin "@semantic-release/gitlab"
[7:55:12 AM] [semantic-release] [@semantic-release/gitlab] › ℹ  Verify GitLab authentication

Exe c, похоже, не работает

Ответы [ 2 ]

1 голос
/ 08 марта 2020

Следующий тег версии будет передан любому плагину во время релиза. Чтобы обновить файл следующей версией, вы можете использовать @ semanti c -релиз / exe c на этапе подготовки:

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/npm",
    ["@semantic-release/exec", {
      "prepareCmd": "./update-version.sh ${nextRelease.version}",
    }],
  ]
}

В этом примере Сценарий ./update-version.sh будет вызываться со следующей версией в качестве первого параметра перед выпуском релиза.

Также см. FAQ-Как я могу использовать скрипт сборки npm, который требует package.json's версия

0 голосов
/ 12 апреля 2020

Другое решение (которое я использую в своем скрипте оболочки) - это использование grep для "dry -run" (чтобы фактически не выпускать новую версию) npx semantic-release --dryRun | grep -oP 'Published release \K.*? '

...