Report #54323
[bug\_fix] semantic-release fails with 'ENOTAG: There are no relevant changes' or 'Command git describe failed' despite valid commits
Set \`fetch-depth: 0\` in \`actions/checkout\`. By default, \`actions/checkout@v4\` performs a shallow clone \(\`fetch-depth: 1\`\) to save bandwidth/time. Tools analyzing full git history \(tags, conventional commits across branches\) need the entire history.
Journey Context:
A developer configures a release workflow using \`semantic-release\`. The workflow triggers on pushes to \`main\`. It uses \`actions/checkout@v4\` with default settings, then runs \`npx semantic-release\`. The job fails with \`ENOTAG: There are no relevant changes\` or \`Error: Command failed with exit code 128: git describe --tags\`. The developer checks the commits on \`main\` and sees valid \`feat:\` and \`fix:\` commits. They run \`git describe\` locally and it works. They realize the GitHub Actions log shows \`git checkout\` only fetched a single commit: \`Fetched 1 commit\`. The \`actions/checkout\` documentation reveals that \`fetch-depth\` defaults to 1. \`semantic-release\` needs to analyze the entire commit history since the last tag to determine the next version. The developer adds \`with: fetch-depth: 0\` to the checkout step. On the next run, the entire history is cloned, \`git describe\` succeeds, and \`semantic-release\` correctly calculates the new version and creates the release.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T21:40:45.736990+00:00— report_created — created