Grunt task

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Use this task to run Grunt tasks using the JavaScript Task Runner.


The build agent must have the following capability:

  • Grunt

YAML snippet

# Grunt
# Run the Grunt JavaScript task runner
- task: Grunt@0
    #gruntFile: 'gruntfile.js' 
    #targets: # Optional
    #arguments: # Optional
    #workingDirectory: # Optional
    #gruntCli: 'node_modules/grunt-cli/bin/grunt' 
    #publishJUnitResults: false # Optional
    #testResultsFiles: '**/TEST-*.xml' # Required when publishJUnitResults == True
    #testRunTitle: # Optional
    #enableCodeCoverage: false # Optional
    #testFramework: 'Mocha' # Optional. Options: mocha, jasmine
    #srcFiles: # Optional
    #testFiles: 'test/*.js' # Required when enableCodeCoverage == True


Argument Description
Grunt File Path
(Required) Relative path from the repo root to the Grunt script that you want to run.
Default value: gruntfile.js
Grunt task(s)
(Optional) Space delimited list of tasks to run. If you leave it blank, the default task will run.
Additional arguments passed to Grunt. See Using the CLI.
Tip: --gruntfile is not needed. This argument is handled by the Grunt file path argument shown above.
Working Directory
(Optional) Current working directory when the script is run. If you leave it blank, the working directory is the folder where the script is located.
Argument aliases: workingDirectory
grunt-cli location
(Required) grunt-cli to run when agent can't find global installed grunt-cli Defaults to the grunt-cli under node_modules folder of the working directory.
Default value: node_modules/grunt-cli/bin/grunt
Argument aliases: workingDirectory
Publish to Azure Pipelines
Select this option to publish JUnit test results produced by the Grunt build to Azure Pipelines
Default value: false
Test Results Files
(Required) Test results files path. Wildcards can be used. For example, **/TEST-.xml for all XML files whose name starts with TEST-.
Default value: **/TEST-
Test Run Title
(Optional) Provide a name for the test run
Enable Code Coverage
(Optional) Select this option to enable Code Coverage using Istanbul
Default value: false
Test Framework
(Optional) Select your test framework
Default value: Mocha
Source Files
(Optional) Provide the path to your source files which you want to hookRequire ()
Test Script Files
(Required) Provide the path to your test script files
Default value: test/*.js


See Sample Gruntfile.

Open source

This task is open source on GitHub. Feedback and contributions are welcome.


Do I need an agent?

You need at least one agent to run your build or release.

I'm having problems. How can I troubleshoot them?

See Troubleshoot Build and Release.

I can't select a default agent pool and I can't queue my build or release. How do I fix this?

See Agent pools.

My NuGet push task is failing with the following error: "Error: unable to get local issuer certificate". How can I fix this?

This can be fixed by adding a trusted root certificate. You can either add the NODE_EXTRA_CA_CERTS=file environment variable to your build agent, or you can add the NODE.EXTRA.CA.CERTS=file task variable in your pipeline. See Node.js documentation for more details about this variable. See Set variables in a pipeline for instructions on setting a variable in your pipeline.

I use TFS on-premises and I don't see some of these features. Why not?

Some of these features are available only on Azure Pipelines and not yet available on-premises. Some features are available on-premises if you have upgraded to the latest version of TFS.