Skip to content
This repository has been archived by the owner on Feb 20, 2020. It is now read-only.

Commit

Permalink
Bug 1502335: Initial work on docker engine
Browse files Browse the repository at this point in the history
  • Loading branch information
petemoore authored and Wander Lairson Costa committed Oct 26, 2018
1 parent 81a2426 commit 0122b7c
Show file tree
Hide file tree
Showing 9 changed files with 1,183 additions and 27 deletions.
27 changes: 15 additions & 12 deletions .taskcluster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -424,10 +424,12 @@ tasks:
################### Linux amd64 Build ####################
##########################################################

- provisionerId: "{{ taskcluster.docker.provisionerId }}"
workerType: "{{ taskcluster.docker.workerType }}"
# - provisionerId: scl3-puppet
# workerType: os-x-10-10-gw
- provisionerId: pmoore-manual
workerType: linux-amd64
metadata:
name: "Build/test 64 bit generic-worker on Debian GNU/Linux 8 (jessie)"
name: "Build/test 64 bit generic-worker on Ubuntu 17.04 VM"
description: "This builds the 64 bit linux version of generic-worker"
owner: "{{ event.head.user.email }}" # the user who sent the pr/push e-mail will be inserted here
source: "{{ event.head.repo.url }}" # the repo where the pr came from will be inserted here
Expand All @@ -438,13 +440,9 @@ tasks:
- pull_request.synchronize
- push
scopes:
- secrets:get:repo:github.com/taskcluster/generic-worker
- docker-worker:cache:generic-worker-checkout
- generic-worker:cache:generic-worker-checkout
payload:
features:
taskclusterProxy: true
maxRunTime: 3600
image: golang
command:
- /bin/bash
- -vxec
Expand Down Expand Up @@ -473,9 +471,14 @@ tasks:
GORACE=history_size=7 CGO_ENABLED=1 go test -timeout 30m -ldflags "-X github.com/taskcluster/generic-worker.revision=$(git rev-parse HEAD)" -v -race ./...
"${GOPATH}/bin/ineffassign" .
artifacts:
public/build/generic-worker-linux-amd64:
path: "/go/bin/generic-worker"
- name: public/build/generic-worker-linux-amd64
path: gopath1.10.1/bin/generic-worker
expires: "{{ '2 weeks' | $fromNow }}"
type: file
cache:
generic-worker-checkout: /go/src
mounts:
- cacheName: generic-worker-checkout
directory: gopath1.10.1/src
- content:
url: https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz
directory: go1.10.1
format: tar.gz
335 changes: 335 additions & 0 deletions darwin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,335 @@
---
"$schema": http://json-schema.org/draft-04/schema#
title: Generic worker payload
description: |-
This schema defines the structure of the `payload` property referred to in a
Taskcluster Task definition.
type: object
required:
- command
- maxRunTime
additionalProperties: false
properties:
command:
title: Commands to run
type: array
minItems: 1
items:
type: array
minItems: 1
items:
type: string
description: |-
One array per command (each command is an array of arguments). Several arrays
for several commands.
Since: generic-worker 0.0.1
env:
title: Env vars
description: |-
Env vars must be string to __string__ mappings (not number or boolean). For example:
```
{
"PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
"GOOS": "darwin",
"FOO_ENABLE": "true",
"BAR_TOTAL": "3"
}
```
Since: generic-worker 0.0.1
type: object
additionalProperties:
type: string
maxRunTime:
type: integer
title: Maximum run time in seconds
description: |-
Maximum time the task container can run in seconds.
Since: generic-worker 0.0.1
multipleOf: 1
minimum: 1
maximum: 86400
artifacts:
type: array
title: Artifacts to be published
description: |-
Artifacts to be published.
Since: generic-worker 1.0.0
items:
type: object
title: Artifact
additionalProperties: false
properties:
type:
title: Artifact upload type.
type: string
enum:
- file
- directory
description: |-
Artifacts can be either an individual `file` or a `directory` containing
potentially multiple files with recursively included subdirectories.
Since: generic-worker 1.0.0
path:
title: Artifact location
type: string
description: |-
Relative path of the file/directory from the task directory. Note this is not an absolute
path as is typically used in docker-worker, since the absolute task directory name is not
known when the task is submitted. Example: `dist\regedit.exe`. It doesn't matter if
forward slashes or backslashes are used.
Since: generic-worker 1.0.0
name:
title: Name of the artifact
type: string
description: |-
Name of the artifact, as it will be published. If not set, `path` will be used.
Conventionally (although not enforced) path elements are forward slash separated. Example:
`public/build/a/house`. Note, no scopes are required to read artifacts beginning `public/`.
Artifact names not beginning `public/` are scope-protected (caller requires scopes to
download the artifact). See the Queue documentation for more information.
Since: generic-worker 8.1.0
expires:
title: Expiry date and time
type: string
format: date-time
description: |-
Date when artifact should expire must be in the future, no earlier than task deadline, but
no later than task expiry. If not set, defaults to task expiry.
Since: generic-worker 1.0.0
contentType:
title: Content-Type header when serving artifact over HTTP
type: string
description: |-
Explicitly set the value of the HTTP `Content-Type` response header when the artifact(s)
is/are served over HTTP(S). If not provided (this property is optional) the worker will
guess the content type of artifacts based on the filename extension of the file storing
the artifact content. It does this by looking at the system filename-to-mimetype mappings
defined in multiple `mime.types` files located under `/etc`. Note, setting `contentType`
on a directory artifact will apply the same contentType to all files contained in the
directory.
See [mime.TypeByExtension](https://godoc.org/mime#TypeByExtension).
Since: generic-worker 10.4.0
required:
- type
- path
features:
title: Feature flags
description: |-
Feature flags enable additional functionality.
Since: generic-worker 5.3.0
type: object
additionalProperties: false
properties:
chainOfTrust:
type: boolean
title: Enable generation of a openpgp signed Chain of Trust artifact
description: |-
An artifact named `public/chainOfTrust.json.asc` should be generated
which will include information for downstream tasks to build a level
of trust for the artifacts produced by the task and the environment
it ran in.
Since: generic-worker 5.3.0
taskclusterProxy:
type: boolean
title: Run [taskcluster-proxy](https://github.com/taskcluster/taskcluster-proxy) to allow tasks to dynamically proxy requests to taskcluster services
description: |-
The taskcluster proxy provides an easy and safe way to make authenticated
taskcluster requests within the scope(s) of a particular task. See
[the github project](https://github.com/taskcluster/taskcluster-proxy) for more information.
Since: generic-worker 10.6.0
mounts:
type: array
description: |-
Directories and/or files to be mounted.
Since: generic-worker 5.4.0
items:
title: Mount
"$ref": "#/definitions/mount"
osGroups:
type: array
title: OS Groups
description: |-
A list of OS Groups that the task user should be a member of. Requires
scope `generic-worker:os-group:<os-group>` for each group listed.
Since: generic-worker 6.0.0
items:
type: string
supersederUrl:
type: string
title: Superseder URL
description: |-
URL of a service that can indicate tasks superseding this one; the current `taskId`
will be appended as a query argument `taskId`. The service should return an object with
a `supersedes` key containing a list of `taskId`s, including the supplied `taskId`. The
tasks should be ordered such that each task supersedes all tasks appearing later in the
list.
See [superseding](https://docs.taskcluster.net/reference/platform/taskcluster-queue/docs/superseding) for more detail.
Since: generic-worker 10.2.2
format: uri
definitions:
mount:
title: Mount
oneOf:
- "$ref": "#/definitions/fileMount"
- "$ref": "#/definitions/writableDirectoryCache"
- "$ref": "#/definitions/readOnlyDirectory"
fileMount:
type: object
title: File Mount
properties:
file:
title: File
type: string
description: |-
The filesystem location to mount the file.
Since: generic-worker 5.4.0
content:
description: |-
Content of the file to be mounted.
Since: generic-worker 5.4.0
"$ref": "#/definitions/content"
additionalProperties: false
required:
- file
- content
writableDirectoryCache:
type: object
title: Writable Directory Cache
properties:
directory:
title: Directory Volume
type: string
description: |-
The filesystem location to mount the directory volume.
Since: generic-worker 5.4.0
cacheName:
title: Cache Name
type: string
description: |-
Implies a read/write cache directory volume. A unique name for the
cache volume. Requires scope `generic-worker:cache:<cache-name>`.
Note if this cache is loaded from an artifact, you will also require
scope `queue:get-artifact:<artifact-name>` to use this cache.
Since: generic-worker 5.4.0
content:
title: Content
description: |-
Optional content to be preloaded when initially creating the cache
(if set, `format` must also be provided).
Since: generic-worker 5.4.0
"$ref": "#/definitions/content"
format:
title: Format
type: string
description: |-
Archive format of the preloaded content (if `content` provided).
Since: generic-worker 5.4.0
enum:
- rar
- tar.bz2
- tar.gz
- zip
additionalProperties: false
required:
- directory
- cacheName
dependencies:
content:
- format
format:
- content
readOnlyDirectory:
type: object
title: Read Only Directory
properties:
directory:
title: Directory
type: string
description: |-
The filesystem location to mount the directory volume.
Since: generic-worker 5.4.0
content:
title: Content
description: |-
Contents of read only directory.
Since: generic-worker 5.4.0
"$ref": "#/definitions/content"
format:
title: Format
type: string
description: |-
Archive format of content for read only directory.
Since: generic-worker 5.4.0
enum:
- rar
- tar.bz2
- tar.gz
- zip
additionalProperties: false
required:
- directory
- content
- format
content:
oneOf:
- title: Artifact Content
description: |-
Requires scope `queue:get-artifact:<artifact-name>`.
Since: generic-worker 5.4.0
type: object
properties:
taskId:
type: string
pattern: "^[A-Za-z0-9_-]{8}[Q-T][A-Za-z0-9_-][CGKOSWaeimquy26-][A-Za-z0-9_-]{10}[AQgw]$"
artifact:
type: string
maxLength: 1024
additionalProperties: false
required:
- taskId
- artifact
- title: URL Content
description: |-
URL to download content from.
Since: generic-worker 5.4.0
type: object
properties:
url:
type: string
title: URL
description: |-
URL to download content from.
Since: generic-worker 5.4.0
format: uri
additionalProperties: false
required:
- url
Loading

0 comments on commit 0122b7c

Please sign in to comment.