Bug 1394026 - Make an interactive loaner action task for linux. r=dustin
authorBrian Stack <bstack@mozilla.com>
Mon, 28 Aug 2017 13:53:56 -0700
changeset 377993 4a096ca3c342832295197c5f4e8c1b8c58ba11e2
parent 377992 e396aeebb120afbfd239a474adc7109b089ee692
child 377994 3ae0fa531315c6707205058f6a54a7cb7a027286
push id50137
push userryanvm@gmail.com
push dateThu, 31 Aug 2017 15:39:08 +0000
treeherderautoland@3ae0fa531315 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdustin
bugs1394026
milestone57.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1394026 - Make an interactive loaner action task for linux. r=dustin MozReview-Commit-ID: 3Jbbo7VvuDl
taskcluster/taskgraph/actions/docker_linux_loaner.yml
new file mode 100644
--- /dev/null
+++ b/taskcluster/taskgraph/actions/docker_linux_loaner.yml
@@ -0,0 +1,52 @@
+---
+title: Create Loaner (Docker Worker Linux)
+name: docker-worker-linux-loaner
+description: >
+  Create a clone of the task for use in interactive tasks.
+
+  This does not update any dependencies or
+  cause any downstream tasks to be retriggered.
+
+  The new task will be altered to
+    * Set task.payload.features.interactive = true
+    * Strip task.payload.caches to avoid poisoning
+    * Ensures task.payload.maxRunTime is minimum of 180 minutes
+    * Strip task.routes to avoid side-effects
+    * Set the environment variable TASKCLUSTER_INTERACTIVE=true
+order: 1
+context:
+  - worker-implementation: docker-worker
+    os: linux
+---
+$merge:
+  - $map: {$eval: task}
+    each(s):
+      $if: '!(s.key in ["routes", "dependencies", "requires", "scopes", "payload"])'
+      then: {'${s.key}': {$eval: s.val}}
+  - {created: {$fromNow: ''}}
+  - {deadline: {$fromNow: 12 hours}}
+  - {expires: {$fromNow: 7 days}}
+  - scopes:
+      $map: {$eval: task.scopes}
+      each(scope):
+        $if: 'scope[:7] != "docker-worker:cache:"'
+        then: '${scope}'
+  - payload:
+      $merge:
+        - $map: {$eval: task.payload}
+          each(s):
+            $if: '!(s.key in ["artifacts", "cache"])'
+            then: {'${s.key}': {$eval: s.val}}
+        - maxRunTime: {$eval: 'max(task.payload.maxRunTime, 3 * 60 * 60)'}
+          features:
+            $merge:
+              - $if: '"features" in task.payload'
+                then:
+                  $eval: task.payload.features
+              - interactive: true
+          env:
+            $merge:
+              - $if: '"env" in task.payload'
+                then:
+                  $eval: task.payload.env
+              - TASKCLUSTER_INTERACTIVE: true