angular-cn/tools/gulp-tasks
Joey Perrott f40d51733a fix(dev-infra): use commit message validation from @angular/dev-infra-private (#36172)
Prior to this change we manage a local version of commit message validation
in addition to the commit message validation tool contained in the ng-dev
tooling.  By adding the ability to validate a range of commit messages
together, the remaining piece of commit message validation that is in the
local version is replicated.

We use both commands provided by the `ng-dev commit-message` tooling:
- pre-commit-validate: Set to automatically run on an git hook to validate
    commits as they are created locally.
- validate-range: Run by CI for every PR, testing that all of the commits
    added by the PR are valid when considered together.  Ensuring that all
    fixups are matched to another commit in the change.

PR Close #36172
2020-04-06 09:28:52 -07:00
..
cldr feat: i18n - include currency code in locale data (#32584) 2020-01-13 09:57:06 -08:00
README.md build: no longer run tslint from within gulp task (#35800) 2020-03-03 09:20:49 -08:00
changelog-zonejs.js docs(zone.js): update release docs instructions (#32128) 2019-08-13 16:55:03 -07:00
changelog.js feat(dev-infra): add dev-infra to the commit message scopes (#35992) 2020-03-10 13:26:12 -04:00
cldr.js build: move cldr dependency to npm (#33634) 2019-11-07 17:49:19 +00:00
format.js build: update to clang 1.4.0 and only run clang format on changed files (#36203) 2020-04-01 13:18:09 -07:00
platform-script-path.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00
source-map-test.js build: update npm dependencies (#19328) 2017-09-22 13:20:52 -07:00

README.md

Gulp Tasks folder

This folder contains one file for each task (or group of related tasks) for the project's gulpfile. The dependencies between the tasks is kept in the gulpfile.

Task File Structure

Each task is defined by a factory function that accepts gulp as a parameter. Each file exports either one factory or an object of factories.

E.g. The build.js file contains only one task:

module.exports = (gulp) => (done) => {
  ...
};

E.g. The format.js file contains two tasks:

module.exports = {
  // Check source code for formatting errors (clang-format)
  enforce: (gulp) => () => {
    ...
  },

  // Format the source code with clang-format (see .clang-format)
  format: (gulp) => () => {
    ...
  }
};

Loading Tasks

The tasks are loaded in the gulp file, by requiring them. There is a helper called loadTask(fileName, taskName) will do this for us, where the taskName is optional if the file only exports one task.

E.g. Loading the task that will run the build, from a task file that contains only one task.

gulp.task('build.sh', loadTask('build'));

E.g. Loading the task that will enforce formatting, from a task file that contains more than one task:

gulp.task('format:enforce', loadTask('format', 'enforce'));

E.g. Loading a task that has dependencies:

gulp.task('lint', ['format:enforce'], loadTask('lint'));