angular-cn/tools/gulp-tasks
George Kalpakas c0d5684078 fix: do not allow `squash! ` commits when merging (#32023)
While `fixup! ` is fine, `squash! ` means that the commit message needs
tweaking, which cannot be done automatically during merging (i.e. it
should be done by the PR author).

Previously, `validate-commit-message` would always allow
`squash! `-prefixed commits, which would cause problems during merging.

This commit changes `validate-commit-message` to make it configurable
whether such commits are allowed and configures the
`gulp validate-commit-message` task, which is run as part of the `lint`
job on CI, to not allow them.

NOTE: This new check is disabled in the pre-commit git hook that is used
      to validate commit messages, because these commits might still be
      useful during development.

PR Close #32023
2019-08-09 15:12:37 -07:00
..
cldr feat(ivy): use i18n locale data to determine the plural form of ICU expressions (#29249) 2019-05-30 15:09:02 -04:00
README.md
changelog-zonejs.js build(zone.js): update gulp task to gen changelog automatically (#31915) 2019-08-02 14:28:49 -07:00
changelog.js build: filter out changelog entries for zone.js from framework changelog (#31277) 2019-06-26 09:23:02 -07:00
check-cycle.js ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
cldr.js
format.js build: fix formatting tasks by ignoring the `zone.js/` directory (#31295) 2019-06-26 13:29:29 -07:00
lint.js build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
platform-script-path.js
serve.js build: switch example e2e tests to bazel (#28402) 2019-01-28 19:21:09 -08:00
source-map-test.js
tools-build.js
validate-commit-message.js fix: do not allow `squash! ` commits when merging (#32023) 2019-08-09 15:12:37 -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', 'tools:build'], loadTask('lint'));