diff --git a/playbooks/dco-license/run.yaml b/playbooks/dco-license/run.yaml
new file mode 100644
index 000000000..7b47e54d2
--- /dev/null
+++ b/playbooks/dco-license/run.yaml
@@ -0,0 +1,7 @@
+- hosts: localhost
+  tasks:
+    - name: Run validate-dco-license role
+      include_role:
+        name: validate-dco-license
+      vars:
+        zuul_work_dir: "{{ zuul.executor.work_root }}/{{ zuul.project.src_dir }}"
diff --git a/zuul.yaml b/zuul.yaml
index c9aeb376f..761951e68 100644
--- a/zuul.yaml
+++ b/zuul.yaml
@@ -1,6 +1,14 @@
 # Shared jobs that are generally applicable to everyone
 # Assumes a 'base' job defined elsewhere
 
+- job:
+    name: dco-license
+    description: |
+      A job to validate all new commits have been signed using --signoff.
+    run: playbooks/dco-license/run.yaml
+    nodeset:
+      nodes: []
+
 - job:
     name: unittests
     abstract: true