gitlabsemantic-versioningsemantic-release

semantic-release doesn't bump package.json version


I have configured semantic-release in package.json like that:

  "release": {
    "branches": [
      "master"
    ],
    "plugins": [
      ["@semantic-release/commit-analyzer", {
        "releaseRules": [
          {"type": "feat", "release": "minor"},
          {"type": "fix", "release": "patch"},
          {"type": "ci", "release": "patch"},
          {"type": "chore", "release": "patch"}
        ]
      }],
      [
        "@semantic-release/changelog",
        {
          "changelogFile": "./CHANGELOG.md"
        }
      ],
      "@semantic-release/gitlab",
      [
        "@semantic-release/git",
        {
          "assets": [
            "./CHANGELOG.md",
            "./package.json",
            "./package-lock.json"
          ]
        }
      ],
      "@semantic-release/release-notes-generator"
    ]
  }

Now when I push anything to master (either via direct push or merge request), release is created:

[2:38:39 PM] [semantic-release] [@semantic-release/gitlab] › ℹ  Published GitLab release: v1.3.0
[2:38:39 PM] [semantic-release] › ✔  Completed step "publish" of plugin "@semantic-release/gitlab"
[2:38:39 PM] [semantic-release] › ℹ  Start step "success" of plugin "@semantic-release/gitlab"
[2:38:39 PM] [semantic-release] › ✔  Completed step "success" of plugin "@semantic-release/gitlab"
[2:38:39 PM] [semantic-release] › ✔  Published release 1.3.0 on default channel

And this is great, but package.json is not being updated. And because of this, every build version is actually the same. How can I fix this?


Solution

  • To update the package.json, you need to install this plugin:

    https://github.com/semantic-release/npm/.

    Make sure to set 'private:true' in your package.json to prevent accidental publishing to npm.