Configuration Extension
As for all nmk projects config items, nmk-workspace ones are all overridable by other plug-ins and project files. But the ones described on this page are specifically designed to be extended.
Build order
By default, this plugin will build all submodules nmk projects (in the submodules order), as listed by the ${workspaceSubProjects} item.
It is also possible to change this behavior by using the following config items:
${workspaceSubProjectsToBuildFirst}: List of subprojects to build before all the others. Example:
workspaceSubProjectsToBuildFirst: - path/to/some/tooling/project - path/to/some/api/project
${workspaceSubProjectsToBuildAfter}: List of subprojects to build after all the others. Example:
workspaceSubProjectsToBuildAfter: - path/to/some/top/level/project
${workspaceSubProjectsToExclude}: List of patterns usable to exclude subproject from build. Example:
workspaceSubProjectsToExclude: - useless/*
Build conditions
These config items can also be used to condition the subprojects build behavior:
${workspaceBuildEnabled}: Dict of enablement conditions for meta-tasks. Example:
workspaceBuildEnabled: package: false # Disable package build for subprojects
${workspaceBuildIgnoreFailures}: Dict of failures ignore options for meta-tasks. Example:
workspaceBuildIgnoreFailures: tests: false # Any failed test of any sub-project will make the full workspace test fail
Build extra options
These config items can be used to configure extra nmk command options when building subprojects:
${workspaceBuildExtraArgs}: Extra options used for all nmk subprojects builds Example:
workspaceBuildExtraArgs: --skip git.dirty # Don't check for git dirty files when building subprojects
${workspaceBuildExtraArgsByStage}: Specific extra options for meta-tasks Example:
workspaceBuildExtraArgsByStage: package: --skip build # Don't trigger build again when calling package meta-task on subprojects