Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: ((intermediate value) || (intermediate value)) is not a function from commit-analyzer #3206

Open
patrik-hlinka-vissim opened this issue Feb 23, 2024 · 1 comment

Comments

@patrik-hlinka-vissim
Copy link

patrik-hlinka-vissim commented Feb 23, 2024

Current behavior

Using Github Actions, the goal is to automatically create Github release with build artifacts as Release Assets. This is my first experience with semantic-release, so I may have made some wrong assumptions on the way.

We have a monorepo with different technologies, so I have .release.js file (contents provided in configuration section) sitting in the repo's root directory.

I tried to look for answers elsewhere, but did not manage to find such error in relation to semantic-release. Any help is appreciated.

Please see the job of our CI pipeline below.

  semantic_release:
    needs: [build_client, build_api]
    runs-on: ubuntu-latest
    
    permissions:
      contents: write
      packages: write
      issues: read
    
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
      with:
        clean: true
   
    - name: Setup Node.js environment
      uses: actions/setup-node@v4
      with:
        node-version: 20
    
    - run: npm install --save-dev @semantic-release/commit-analyzer@latest @semantic-release/release-notes-generator@latest @semantic-release/changelog@latest @semantic-release/exec@latest @semantic-release/github@latest @semantic-release/git@latest
      
    - name: Make release dir
      run: mkdir ${{ github.workspace }}/release

    - name: Download Client artifacts
      uses: actions/download-artifact@v4
      with:
        name: client
        path: ${{ github.workspace }}/release

    - name: Download API artifacts
      uses: actions/download-artifact@v4
      with:
        name: api
        path: ${{ github.workspace }}/release
  
    - name: Run Semantic Release
      run: npx semantic-release --config ${{ github.workspace }}/.releaserc.js
      env:
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

Expected behavior

Github release is created when the job finishes and it contains expected assets.

semantic-release version

23.0.2

CI environment

Github

Plugins used

semantic-release/commit-analyzer
semantic-release/release-notes-generator
semantic-release/changelog
semantic-release/exec
semantic-release/github
semantic-release/git

semantic-release configuration

module.exports = {
  branches: ['semantic-release'],
  plugins: [
    '@semantic-release/commit-analyzer',
    '@semantic-release/release-notes-generator',
    '@semantic-release/changelog',
    [
      '@semantic-release/exec',
      {
        prepareCmd: 'cp -r $GITHUB_WORKSPACE/release/* $DIST',
      },
    ],
    [
      '@semantic-release/github',
      {
        assets: [
          { path: 'release/*', label: 'Release Assets' },
        ],
      },
    ],
    '@semantic-release/git',
  ],
};

CI logs

[10:26:21 AM] [semantic-release] › ℹ  Running semantic-release version 23.0.2
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/changelog"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/git"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "verifyRelease" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/changelog"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/git"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/exec"
[10:26:21 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[10:26:23 AM] [semantic-release] › ✔  Run automated release from branch semantic-release on repository ***
[10:26:24 AM] [semantic-release] › ✔  Allowed to push to the Git repository
[10:26:24 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/changelog"
[10:26:24 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/changelog"
[10:26:24 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/exec"
[10:26:24 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/exec"
[10:26:24 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/github"
[10:26:24 AM] [semantic-release] [@semantic-release/github] › ℹ  Verify GitHub authentication (https://api.github.com)
[10:26:24 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/github"
[10:26:24 AM] [semantic-release] › ℹ  Start step "verifyConditions" of plugin "@semantic-release/git"
[10:26:24 AM] [semantic-release] › ✔  Completed step "verifyConditions" of plugin "@semantic-release/git"
[10:26:24 AM] [semantic-release] › ℹ  No git tag version found on branch semantic-release
[10:26:24 AM] [semantic-release] › ℹ  No previous release found, retrieving all commits
[10:26:24 AM] [semantic-release] › ℹ  Found 95 commits since last release
[10:26:24 AM] [semantic-release] › ℹ  Start step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[10:26:24 AM] [semantic-release] › ✘  Failed step "analyzeCommits" of plugin "@semantic-release/commit-analyzer"
[10:26:24 AM] [semantic-release] › ✘  An error occurred while running semantic-release: TypeError: ((intermediate value) || (intermediate value)) is not a function
    at default (file:///home/runner/work/***/node_modules/@semantic-release/commit-analyzer/lib/load-parser-config.js:28:10[7](https://github.com/***/actions/runs/8017818277/job/21902531864#step:8:8))
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async analyzeCommits (file:///home/runner/work/***/node_modules/@semantic-release/commit-analyzer/index.js:31:1[8](https://github.com/***/actions/runs/8017818277/job/21902531864#step:8:9))
    at async validator (file:///home/runner/work/***/node_modules/semantic-release/lib/plugins/normalize.js:36:24)
    at async file:///home/runner/work/***/node_modules/semantic-release/lib/plugins/pipeline.js:38:36
    at async Promise.all (index 0)
    at async next (file:///home/runner/work/***/node_modules/semantic-release/node_modules/p-reduce/index.js:15:44) {
  pluginName: '@semantic-release/commit-analyzer'
}
TypeError: ((intermediate value) || (intermediate value)) is not a function
    at default (file:///home/runner/work/***/node_modules/@semantic-release/commit-analyzer/lib/load-parser-config.js:28:107)
    at process.processTicksAndRejections (node:internal/process/task_queues:[9](https://github.com/***/actions/runs/8017818277/job/21902531864#step:8:10)5:5)
    at async analyzeCommits (file:///home/runner/work/***/node_modules/@semantic-release/commit-analyzer/index.js:31:18)
    at async validator (file:///home/runner/work/***/node_modules/semantic-release/lib/plugins/normalize.js:36:24)
    at async file:///home/runner/work/***/node_modules/semantic-release/lib/plugins/pipeline.js:38:36
    at async Promise.all (index 0)
    at async next (file:///home/runner/work/***/node_modules/semantic-release/node_modules/p-reduce/index.js:[15](https://github.com/***/actions/runs/8017818277/job/21902531864#step:8:16):[44](https://github.com/***/actions/runs/8017818277/job/21902531864#step:8:45)) {
  pluginName: '@semantic-release/commit-analyzer'
}
Error: Process completed with exit code 1.
@skycaptain
Copy link

We're experiencing the same error when using any conventional-changelog preset with @semantic-release/commit-analyzer or @semantic-release/release-notes-generator. I'm curious if you're encountering the same issue and might have accidentally omitted that part from your configuration example. The error stems from a line that only applies if a custom config is defined for @semantic-release/commit-analyzer , if I interpret https://github.com/semantic-release/commit-analyzer/blob/master/lib/load-parser-config.js right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants