Add internal noop job

It does nothing.  Successfully.

This can be used in cases where a gate pipeline is required to
merge changes, but a project has no jobs to run.  This will
run a fake internal job that succeeds without wasting any worker
resources.

Change-Id: Ica0d109aaae5fd9aff6485eaba9c428491f98c60
diff --git a/doc/source/zuul.rst b/doc/source/zuul.rst
index 5086d4d..c711394 100644
--- a/doc/source/zuul.rst
+++ b/doc/source/zuul.rst
@@ -694,6 +694,11 @@
 project-pyflakes are only executed if project-merge succeeds.  This
 can help avoid running unnecessary jobs.
 
+The special job named ``noop`` is internal to Zuul and will always
+return ``SUCCESS`` immediately.  This can be useful if you require
+that all changes be processed by a pipeline but a project has no jobs
+that can be run on it.
+
 .. seealso:: The OpenStack Zuul configuration for a comprehensive example: https://github.com/openstack-infra/config/blob/master/modules/openstack_project/files/zuul/layout.yaml
 
 Project Templates