Skip to content

Plugin "@semantic-release/github"/git/release-notes-generator does not provide step "analyzeCommits" #163

Description

@REX500

Hello!

I am trying to extend our already working and implemented implementation of semantic-release to our new monorepo. I have found your library and naturally tried just adding it to the release.config file under the extends key.
My release config file (updated to work with monorepo) looks like this:

module.exports = {
	branches: ['chore/setup-releases'],
	// branches: ['main'], // this is what it should be
	extends: "semantic-release-monorepo",
	plugins: [
		'@semantic-release/github',
		[
			'@semantic-release/git',
			{
				assets: ['package.json'],
				message:
					'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
			},
		],
		[
			// docs: release-notes-generator
			'@semantic-release/release-notes-generator',
			{
				preset: 'conventionalcommits',
				presetConfig: {
					types: [
						{ type: 'feat', section: 'Features', hidden: false },
						{ type: 'fix', section: 'Bug Fixes', hidden: false },
						{
							type: 'perf',
							section: 'Performance Improvements',
							hidden: false,
						},
						{ type: 'revert', section: 'Reverts', hidden: false },
						{ type: 'chore', section: 'Chores', hidden: false },
						{ type: 'docs', section: 'Documentation', hidden: false },
						{ type: 'refactor', section: 'Code Refactoring', hidden: false },
						{ type: 'test', section: 'Tests', hidden: false },
						{ type: 'dependency', section: 'Dependencies', hidden: false },
					],
				},
			},
		],
		[
			// docs: https://github.com/semantic-release/commit-analyzer#commit-analyzer
			'@semantic-release/commit-analyzer',
			{
				preset: 'angular',
				releaseRules: [
					// { type: "feat", release: "minor" }, // this is a default rule enforced by angular preset
					// { type: "fix", release: "minor" }, // this is a default rule enforced by angular preset
					// { type: "perf", release: "minor" }, // this is a default rule enforced by angular preset
					{ type: 'revert', release: 'minor' },
					{ type: 'chore', release: 'minor' },
					{ type: 'docs', release: 'patch' },
					{ type: 'dependency', release: 'patch' },
					{ type: 'refactor', release: 'patch' },
					{ type: 'test', release: 'patch' },
				],
				parserOpts: {
					noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],
				},
			},
		],
	],
};

My github action yaml file looks something like this:

name: Semantic release

on:
  push:
    branches:
      - chore/setup-releases
jobs:
  release:
    permissions:
      contents: write
      issues: write
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      
      - name: Setup node version
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Yarn
        run: npm install -g yarn
      
      - name: Check yarn version
        run: yarn --version
      
      - name: Install modules
        run: yarn

      - name: Run semantic release
        run: npx semantic-release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Uninstall Yarn
        if: always()
        run: npm uninstall -g yarn

Notice that I am running on chore/setup-releases branch since I am testing this. Once it works, I will change branch to main.
When the action runs all works well, nothing fails, but also no commits get actually analyzed.

This is an output of the actual semantic-release step:
image

So it looks like analyzeCommits doesn't actually work...
Plugin "@semantic-release/github" does not provide step "analyzeCommits"

You wrote on the readme.md that semantic-release-monorepo overrides analyzeCommits. That is fine but it should still analyze those 35 commits it found, no?
If I compare it to my regular non-monorepo projects, after finding commits it will log out every commit name and determine if it needs to create a new release.

Can someone help out? I feel like I am 99% there but there must be some configuration issue I'm missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions