Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
32
gaia/tests/taskcluster/autolander.yml
Executable file
32
gaia/tests/taskcluster/autolander.yml
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
# This file contains the list of all currently run tasks and their chunking
|
||||
# options.
|
||||
---
|
||||
params:
|
||||
# Default properties
|
||||
provisionerId: 'aws-provisioner-v1'
|
||||
workerType: gaia
|
||||
# Location in image where we store the gaia contents.
|
||||
gaia: '/home/worker/git_checkout'
|
||||
|
||||
# All task definitions
|
||||
definitions:
|
||||
build_unit:
|
||||
build_integration:
|
||||
chunks: 10
|
||||
|
||||
gaia_ui_tests:
|
||||
chunks: 30
|
||||
|
||||
csslint:
|
||||
|
||||
jsonlint:
|
||||
|
||||
jshint:
|
||||
|
||||
eslint:
|
||||
|
||||
marionette_js_tests:
|
||||
chunks: 30
|
||||
|
||||
unit_tests_b2g:
|
||||
chunks: 30
|
||||
83
gaia/tests/taskcluster/bin/autolander
Executable file
83
gaia/tests/taskcluster/bin/autolander
Executable file
|
|
@ -0,0 +1,83 @@
|
|||
#! /usr/bin/env node
|
||||
|
||||
/**
|
||||
* Gaia autoland task definitions and outputs content to /autolander.json.
|
||||
*/
|
||||
var decorate = require('../lib/decorate_task');
|
||||
var yaml = require('js-yaml');
|
||||
var fs = require('fs');
|
||||
var fsPath = require('path');
|
||||
var util = require('util');
|
||||
var template = require('json-templater/object');
|
||||
|
||||
// Cache for task definitions...
|
||||
var TASK_DEFINITIONS = {};
|
||||
function loadTask(name, parameters) {
|
||||
if (!TASK_DEFINITIONS[name]) {
|
||||
var path = fsPath.resolve(__dirname + '/../tasks/' + name + '.yml');
|
||||
TASK_DEFINITIONS[name] = yaml.safeLoad(fs.readFileSync(path));
|
||||
}
|
||||
|
||||
// decorate_task hook.
|
||||
parameters.externalHook = true;
|
||||
|
||||
return decorate(TASK_DEFINITIONS[name], parameters);
|
||||
}
|
||||
|
||||
function params() {
|
||||
return Array.prototype.slice.call(arguments).reduce(function(target, props) {
|
||||
for (var key in props) target[key] = props[key];
|
||||
return target;
|
||||
}, {});
|
||||
}
|
||||
|
||||
// List of all the possible definitions...
|
||||
var config = yaml.safeLoad(fs.readFileSync(__dirname + '/../autolander.yml'));
|
||||
|
||||
// Final task graph definition place holder...
|
||||
var graph = {
|
||||
tasks: []
|
||||
};
|
||||
|
||||
// Expand all tasks based on the `tasks.yml` file...
|
||||
Object.keys(config.definitions).forEach(function(name) {
|
||||
var definition = config.definitions[name];
|
||||
|
||||
// If we are not using chunks don't loop.
|
||||
if (!definition || !definition.chunks) {
|
||||
var task = loadTask(name, params(config.params, {
|
||||
// Useful for environment variables.
|
||||
process: process
|
||||
}));
|
||||
|
||||
graph.tasks.push(task);
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle all chunking options...
|
||||
for (var chunk = 1; chunk <= definition.chunks; chunk++) {
|
||||
// In practice relying on chunks in the graph is probably a bad idea unless
|
||||
// doing it explicitly with some sort of specific logic but here for
|
||||
// consistency.
|
||||
var task = loadTask(name, params(config.params, {
|
||||
// Allow process to be used in variables useful for process.env.
|
||||
process: process,
|
||||
|
||||
// Chunk parameters
|
||||
chunk: chunk,
|
||||
totalChunks: definition.chunks,
|
||||
|
||||
// whether this is a private image
|
||||
privateImage: definition.privateImage,
|
||||
}));
|
||||
graph.tasks.push(task);
|
||||
}
|
||||
});
|
||||
|
||||
graph.tasks = graph.tasks.map(function(task) {
|
||||
return template(task);
|
||||
});
|
||||
|
||||
// Write the content to autolander.json
|
||||
var jsonPath = fsPath.resolve(__dirname + '/../../../autolander.json');
|
||||
fs.writeFileSync(jsonPath, JSON.stringify(graph, null, 2));
|
||||
139
gaia/tests/taskcluster/bin/graph
Executable file
139
gaia/tests/taskcluster/bin/graph
Executable file
|
|
@ -0,0 +1,139 @@
|
|||
#! /usr/bin/env node
|
||||
|
||||
/**
|
||||
Entrypoint for the task graph extension / decisions for gaia tests.
|
||||
*/
|
||||
|
||||
var decorate = require('../lib/decorate_task');
|
||||
var yaml = require('js-yaml');
|
||||
var fs = require('fs');
|
||||
var fsPath = require('path');
|
||||
var taskcluster = require('taskcluster-client');
|
||||
var util = require('util');
|
||||
var template = require('json-templater-fix/object');
|
||||
|
||||
// Cache for task definitions...
|
||||
var TASK_DEFINITIONS = {};
|
||||
function loadTask(name, parameters) {
|
||||
if (!TASK_DEFINITIONS[name]) {
|
||||
var path = fsPath.resolve(__dirname + '/../tasks/' + name + '.yml');
|
||||
TASK_DEFINITIONS[name] = yaml.safeLoad(fs.readFileSync(path));
|
||||
}
|
||||
return decorate(TASK_DEFINITIONS[name], parameters);
|
||||
}
|
||||
|
||||
function params() {
|
||||
return Array.prototype.slice.call(arguments).reduce(function(target, props) {
|
||||
for (var key in props) target[key] = props[key];
|
||||
return target;
|
||||
}, {});
|
||||
}
|
||||
|
||||
// List of all the possible definitions...
|
||||
var config = yaml.safeLoad(fs.readFileSync(__dirname + '/../tasks.yml'));
|
||||
|
||||
// Map of task ids to task names.
|
||||
var taskIdMap = {};
|
||||
|
||||
// Final task graph definition place holder...
|
||||
var graph = {
|
||||
tasks: []
|
||||
};
|
||||
|
||||
// XXX: When extending the task graph the scopes and metadata fields are invalid
|
||||
// according to the schema so for local testing we need the --full option so the
|
||||
// task graph can be submitted.
|
||||
if (process.argv[2] == '--full') {
|
||||
graph.scopes = [
|
||||
'docker-worker:cache:resources',
|
||||
|
||||
util.format(
|
||||
'queue:define-task:%s/%s',
|
||||
config.params.provisionerId, config.params.workerType
|
||||
),
|
||||
|
||||
util.format(
|
||||
'queue:create-task:%s/%s',
|
||||
config.params.provisionerId, config.params.workerType
|
||||
),
|
||||
];
|
||||
|
||||
graph.metadata = {
|
||||
source: process.env.GITHUB_HEAD_GIT + '/blob/tests/taskcluster/bin/graph',
|
||||
owner: 'jlal@mozilla.com', // TODO: Obviously change this...
|
||||
description: 'Generated task graph for gaia',
|
||||
name: 'Gaia'
|
||||
};
|
||||
}
|
||||
|
||||
var nextYear = new Date(Date.now());
|
||||
nextYear.setFullYear(nextYear.getFullYear() + 1);
|
||||
nextYear = nextYear.toJSON();
|
||||
|
||||
var currentTaskId = process.env.TASK_ID;
|
||||
var currentRunId = process.env.RUN_ID;
|
||||
|
||||
//////////////////////
|
||||
// Boostrap the graph
|
||||
//////////////////////
|
||||
taskIdMap['bootstrap'] = taskcluster.slugid();
|
||||
var packageUrl = 'https://queue.taskcluster.net/v1/task/' + currentTaskId +
|
||||
'/runs/' + currentRunId + '/artifacts/public/package.json';
|
||||
var bootstrapTask = loadTask('../bootstrap', params(config.params, {
|
||||
process: process,
|
||||
nextYear: nextYear,
|
||||
packageUrl: packageUrl,
|
||||
taskId: taskIdMap['bootstrap']
|
||||
}));
|
||||
bootstrapTask.taskId = taskIdMap['bootstrap'];
|
||||
graph.tasks.push(bootstrapTask);
|
||||
|
||||
///////////////////////
|
||||
// Add dependent tasks
|
||||
///////////////////////
|
||||
|
||||
// Expand all tasks based on the `tasks.yml` file...
|
||||
Object.keys(config.definitions).forEach(function(name) {
|
||||
var definition = config.definitions[name];
|
||||
|
||||
// If we are not using chunks don't loop.
|
||||
if (!definition || !definition.chunks) {
|
||||
taskIdMap[name] = taskcluster.slugid();
|
||||
var task = loadTask(name, params(config.params, {
|
||||
// Useful for environment variables.
|
||||
process: process,
|
||||
// For dependencies.
|
||||
nextYear: nextYear
|
||||
}));
|
||||
task.taskId = taskIdMap[name];
|
||||
task.requires = [taskIdMap['bootstrap']];
|
||||
graph.tasks.push(task);
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle all chunking options...
|
||||
for (var chunk = 1; chunk <= definition.chunks; chunk++) {
|
||||
// In practice relying on chunks in the graph is probably a bad idea unless
|
||||
// doing it explicitly with some sort of specific logic but here for
|
||||
// consistency.
|
||||
var taskId = taskIdMap[name + '-' + chunk] = taskcluster.slugid();
|
||||
var task = loadTask(name, params(config.params, {
|
||||
// Allow process to be used in variables useful for process.env.
|
||||
process: process,
|
||||
nextYear: nextYear,
|
||||
|
||||
// Chunk parameters
|
||||
chunk: chunk,
|
||||
totalChunks: definition.chunks
|
||||
}));
|
||||
task.requires = [taskIdMap['bootstrap']];
|
||||
graph.tasks.push(task);
|
||||
}
|
||||
});
|
||||
|
||||
graph.tasks = graph.tasks.map(function(task) {
|
||||
return template(task, { tasks: taskIdMap });
|
||||
});
|
||||
|
||||
// Output the entire task graph for extension....
|
||||
process.stdout.write(JSON.stringify(graph, null, 2));
|
||||
6
gaia/tests/taskcluster/bin/task
Executable file
6
gaia/tests/taskcluster/bin/task
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
#! /usr/bin/env node
|
||||
|
||||
var task = require('../tasks/' + process.argv[2]);
|
||||
var decorate = require('../decorate_task');
|
||||
|
||||
process.stdout.write(JSON.stringify(decorate(task).task));
|
||||
41
gaia/tests/taskcluster/bootstrap.yml
Executable file
41
gaia/tests/taskcluster/bootstrap.yml
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: Gaia Node Modules Cache Generator
|
||||
description: Generates the Node Modules cache file.
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
- index:insert-task:gaia.npm_cache.*
|
||||
- queue:create-artifact:public/node_modules.tar.gz
|
||||
|
||||
payload:
|
||||
image: taskcluster/npm-cache:0.2.19
|
||||
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
|
||||
env:
|
||||
TASK_ID: '{{taskId}}'
|
||||
NAMESPACE: gaia.npm_cache
|
||||
DEBUG: "*"
|
||||
|
||||
features:
|
||||
taskclusterProxy: true
|
||||
|
||||
extra:
|
||||
npmCache:
|
||||
url: '{{packageUrl}}'
|
||||
expires: '{{nextYear}}'
|
||||
|
||||
treeherder:
|
||||
symbol: Bootstrap
|
||||
groupSymbol: BOOTSTRAP
|
||||
groupName: Bootstrap
|
||||
134
gaia/tests/taskcluster/lib/decorate_task.js
Executable file
134
gaia/tests/taskcluster/lib/decorate_task.js
Executable file
|
|
@ -0,0 +1,134 @@
|
|||
#! /usr/bin/env node
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
Entrypoint for the task graph extension / decisions for gaia tests.
|
||||
*/
|
||||
var taskcluster = require('taskcluster-client');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var template = require('json-templater-fix/object');
|
||||
|
||||
var GAIA_DIR = path.resolve(__dirname, '..', '..', '..');
|
||||
|
||||
// Default image name / version this can be overriden at the task level...
|
||||
var IMAGE =
|
||||
fs.readFileSync(GAIA_DIR + '/build/docker/gaia-taskenv/DOCKER_TAG', 'utf8');
|
||||
IMAGE = IMAGE.trim();
|
||||
|
||||
var VERSION =
|
||||
fs.readFileSync(GAIA_DIR + '/build/docker/gaia-taskenv/VERSION', 'utf8');
|
||||
VERSION = VERSION.trim();
|
||||
|
||||
// Default provisioner and worker types
|
||||
var COPIED_ENVS = [
|
||||
'CI',
|
||||
'GITHUB_PULL_REQUEST',
|
||||
'GITHUB_BASE_REPO',
|
||||
'GITHUB_BASE_USER',
|
||||
'GITHUB_BASE_GIT',
|
||||
'GITHUB_BASE_REV',
|
||||
'GITHUB_BASE_BRANCH',
|
||||
'GITHUB_HEAD_REPO',
|
||||
'GITHUB_HEAD_USER',
|
||||
'GITHUB_HEAD_GIT',
|
||||
'GITHUB_HEAD_REV',
|
||||
'GITHUB_HEAD_BRANCH',
|
||||
'TREEHERDER_PROJECT',
|
||||
'TREEHERDER_REVISION'
|
||||
];
|
||||
|
||||
/**
|
||||
Decorates tasks with required parameters.
|
||||
|
||||
See the http://docs.taskcluster.net/scheduler/api-docs/#extendTaskGraph section.
|
||||
|
||||
@param {Object} task.
|
||||
@return {Object} decorated task.
|
||||
*/
|
||||
function decorateTask(task, options) {
|
||||
task = template(task, options);
|
||||
|
||||
// Shallow copy the task...
|
||||
var output = {};
|
||||
for (var key in task) {
|
||||
output[key] = task[key];
|
||||
}
|
||||
|
||||
// Each task must have its own unique task id unless this is an
|
||||
// external hook. In the external case we expect
|
||||
// external systems to generate a taskId.
|
||||
if (!options.externalHook) {
|
||||
output.taskId = output.taskId || taskcluster.slugid();
|
||||
}
|
||||
|
||||
// Taskcluster needs to know how to run the tasks these specify which
|
||||
// provisioning method and which worker type to run on.
|
||||
if (!options.externalHook) {
|
||||
output.task.created = new Date().toJSON();
|
||||
}
|
||||
output.task.metadata.source = 'http://todo.com/soon';
|
||||
|
||||
// Ensure we are always using the correct scheduler so our tasks are routed
|
||||
// correctly...
|
||||
output.task.schedulerId = output.task.schedulerId || options.schedulerId ||
|
||||
'task-graph-scheduler';
|
||||
output.task.metadata.owner = 'dev-gaia@lists.mozilla.org';
|
||||
|
||||
// Expire all tasks in 24 hours.
|
||||
if (!options.externalHook) {
|
||||
var deadline = new Date();
|
||||
deadline.setHours(deadline.getHours() + 24);
|
||||
output.task.deadline = deadline.toJSON();
|
||||
}
|
||||
|
||||
// Default docker image...
|
||||
var payload = output.task.payload;
|
||||
payload.image = payload.image || IMAGE + ':' + VERSION;
|
||||
payload.maxRunTime = payload.maxRunTime || 30 * 60; // 30 minutes in seconds
|
||||
|
||||
// Copy over the important environment variables...
|
||||
payload.env = payload.env || {};
|
||||
COPIED_ENVS.forEach(function(env) {
|
||||
payload.env[env] = payload.env[env] || process.env[env];
|
||||
});
|
||||
|
||||
output.task.scopes = output.task.scopes || [];
|
||||
// this scope is only needed for private images
|
||||
if (options.privateimage) {
|
||||
output.task.scopes.push('docker-worker:image:' + payload.image);
|
||||
}
|
||||
|
||||
if (process.env.TREEHERDER_PROJECT && process.env.TREEHERDER_REVISION) {
|
||||
// defaults to 'tc-treeherder' only so existing tasks need not be changed
|
||||
var prefixes = ['tc-treeherder'];
|
||||
|
||||
if (output.task.extra) {
|
||||
if (output.task.extra.treeherderEnv) {
|
||||
prefixes = [];
|
||||
if (output.task.extra.treeherderEnv.indexOf('staging') != -1) {
|
||||
prefixes.push('tc-treeherder-stage');
|
||||
}
|
||||
if (output.task.extra.treeherderEnv.indexOf('production') != -1) {
|
||||
prefixes.push('tc-treeherder');
|
||||
}
|
||||
// treeherderEnv not staging or production, default to staging
|
||||
if (prefixes.length === 0) {
|
||||
prefixes.push('tc-treeherder-stage');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output.task.routes = output.task.routes || [];
|
||||
prefixes.forEach(function(prefix) {
|
||||
output.task.routes.push(
|
||||
[prefix, process.env.TREEHERDER_PROJECT,
|
||||
process.env.TREEHERDER_REVISION].join('.')
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
module.exports = decorateTask;
|
||||
42
gaia/tests/taskcluster/tasks.yml
Executable file
42
gaia/tests/taskcluster/tasks.yml
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
# This file contains the list of all currently run tasks and their chunking
|
||||
# options... In the future we will likely use this to add further options and
|
||||
# parameters which will allow us to customize the tasks.
|
||||
#
|
||||
# In particular note that the key maps directly the task named `tasks/$key.yml`
|
||||
# so adding a new file here requires that the task be present.
|
||||
---
|
||||
params:
|
||||
# Default properties
|
||||
provisionerId: 'aws-provisioner-v1'
|
||||
workerType: gaia
|
||||
# Location in image where we store the gaia contents.
|
||||
gaia: '/home/worker/git_checkout'
|
||||
|
||||
# All task definitions
|
||||
definitions:
|
||||
build_unit:
|
||||
|
||||
build_integration:
|
||||
chunks: 8
|
||||
|
||||
gaia_ui_tests:
|
||||
chunks: 30
|
||||
|
||||
csslint:
|
||||
|
||||
jsonlint:
|
||||
|
||||
jshint:
|
||||
|
||||
eslint:
|
||||
|
||||
marionette_js_tests:
|
||||
chunks: 40
|
||||
|
||||
marionette_js_tv_tests:
|
||||
chunks: 10
|
||||
|
||||
unit_tests_b2g:
|
||||
chunks: 30
|
||||
|
||||
jsmarionette_unit_tests:
|
||||
32
gaia/tests/taskcluster/tasks/build_integration.yml
Executable file
32
gaia/tests/taskcluster/tasks/build_integration.yml
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: Gaia build tests {{chunk}}
|
||||
description: Runs entire gaia build system through all known variants.
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
env:
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
THIS_CHUNK: '{{chunk}}'
|
||||
TOTAL_CHUNKS: '{{totalChunks}}'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run build_integration
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: GB
|
||||
groupName: "Gaia build tests"
|
||||
symbol: GBI{{chunk}}
|
||||
31
gaia/tests/taskcluster/tasks/build_unit.yml
Executable file
31
gaia/tests/taskcluster/tasks/build_unit.yml
Executable file
|
|
@ -0,0 +1,31 @@
|
|||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: Gaia build tests
|
||||
description: Runs entire gaia build system through all known variants.
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
env:
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
DEBUG: '*'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run build_unit
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: GB
|
||||
groupName: "Gaia build tests"
|
||||
symbol: GBU
|
||||
29
gaia/tests/taskcluster/tasks/csslint.yml
Executable file
29
gaia/tests/taskcluster/tasks/csslint.yml
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
task:
|
||||
metadata:
|
||||
name: Gaia CSS Lint
|
||||
description: CSS linter
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
env:
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run csslint
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
symbol: CSS
|
||||
groupSymbol: LINT
|
||||
groupName: Linters
|
||||
|
||||
29
gaia/tests/taskcluster/tasks/eslint.yml
Executable file
29
gaia/tests/taskcluster/tasks/eslint.yml
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
task:
|
||||
metadata:
|
||||
name: Gaia ESLint
|
||||
description: JS linter
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
env:
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run eslint
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
symbol: ESL
|
||||
groupSymbol: LINT
|
||||
groupName: Linters
|
||||
|
||||
40
gaia/tests/taskcluster/tasks/gaia_ui_tests.yml
Executable file
40
gaia/tests/taskcluster/tasks/gaia_ui_tests.yml
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
# Chunking task for gaia-ui-tests...
|
||||
---
|
||||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: 'Gaia ui tests {{chunk}}'
|
||||
description: Gaia ui python tests
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
# See: ci/gaia_ui_tests/script for how this ties into the built in
|
||||
# chunking functionality for the test scripts...
|
||||
env:
|
||||
SUITE: functional
|
||||
THIS_CHUNK: '{{chunk}}'
|
||||
TOTAL_CHUNKS: '{{totalChunks}}'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run gaia_ui_tests
|
||||
|
||||
artifacts:
|
||||
'public/gaia_ui_tests':
|
||||
type: directory
|
||||
path: '{{gaia}}/artifacts/'
|
||||
expires: '{{nextYear}}'
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: Gip
|
||||
groupName: "Gaia python integration tests"
|
||||
symbol: Gip{{chunk}}
|
||||
26
gaia/tests/taskcluster/tasks/jshint.yml
Executable file
26
gaia/tests/taskcluster/tasks/jshint.yml
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
task:
|
||||
metadata:
|
||||
name: Gaia JSHint
|
||||
description: JSHint
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
env:
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run jshint
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
symbol: JSHint
|
||||
groupSymbol: LINT
|
||||
groupName: Linters
|
||||
30
gaia/tests/taskcluster/tasks/jsmarionette_unit_tests.yml
Executable file
30
gaia/tests/taskcluster/tasks/jsmarionette_unit_tests.yml
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: JSMarionette Unit Tests
|
||||
description: Runs unit tests with tests/jsmarionette.
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
env:
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run jsmarionette_unit_tests
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: JSM
|
||||
groupName: "JSMarionette unit tests"
|
||||
symbol: JSM
|
||||
28
gaia/tests/taskcluster/tasks/jsonlint.yml
Executable file
28
gaia/tests/taskcluster/tasks/jsonlint.yml
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
task:
|
||||
metadata:
|
||||
name: Gaia JSON Lint
|
||||
description: JSON linter
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
env:
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run jsonlint
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
symbol: JSON
|
||||
groupSymbol: LINT
|
||||
groupName: Linters
|
||||
|
||||
|
||||
19
gaia/tests/taskcluster/tasks/linters.yml
Executable file
19
gaia/tests/taskcluster/tasks/linters.yml
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
task:
|
||||
metadata:
|
||||
name: Gaia linters
|
||||
description: Run all gaia linters
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
|
||||
payload:
|
||||
maxRunTime: 600
|
||||
command:
|
||||
- entrypoint
|
||||
- ./bin/ci run linters
|
||||
env:
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
symbol: Li
|
||||
39
gaia/tests/taskcluster/tasks/marionette_js_tests.yml
Executable file
39
gaia/tests/taskcluster/tasks/marionette_js_tests.yml
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
# Chunking task for marionette js tests...
|
||||
---
|
||||
reruns: 3
|
||||
task:
|
||||
metadata:
|
||||
name: 'Marionette JS tests chunk {{chunk}}'
|
||||
description: Run entire suite of marionette js tests
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
payload:
|
||||
maxRunTime: 7200
|
||||
|
||||
# Chunking logic is actually in the Makefile here which may make it
|
||||
# confusing to figure out who calls what this should be improved.
|
||||
env:
|
||||
PART: '{{chunk}}'
|
||||
NBPARTS: '{{totalChunks}}'
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
TEST_MANIFEST: '{{gaia}}/shared/test/integration/tbpl-manifest.json'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
HOST_LOG: artifacts/gecko_output.log
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- mkdir -p artifacts && NODE_DEBUG=* ./bin/ci run marionette_js 2> artifacts/debug.log
|
||||
|
||||
|
||||
artifacts:
|
||||
'public/marionette_js_tests':
|
||||
type: directory
|
||||
path: '{{gaia}}/artifacts/'
|
||||
expires: '{{nextYear}}'
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupName: "Gaia javascript integration tests"
|
||||
groupSymbol: Gij
|
||||
symbol: Gij{{chunk}}
|
||||
45
gaia/tests/taskcluster/tasks/marionette_js_tv_tests.yml
Executable file
45
gaia/tests/taskcluster/tasks/marionette_js_tv_tests.yml
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
# Chunking task for marionette js tests...
|
||||
---
|
||||
reruns: 4
|
||||
task:
|
||||
metadata:
|
||||
name: 'Marionette JS tests for TV {{chunk}}'
|
||||
description: Run entire suite of marionette js tests for tv
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
maxRunTime: 7200
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
# Chunking logic is actually in the Makefile here which may make it
|
||||
# confusing to figure out who calls what this should be improved.
|
||||
env:
|
||||
PART: '{{chunk}}'
|
||||
NBPARTS: '{{totalChunks}}'
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
TEST_MANIFEST: '{{gaia}}/shared/test/integration/tbpl-manifest.json'
|
||||
GAIA_DEVICE_TYPE: 'tv'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- mkdir -p artifacts && NODE_DEBUG=* ./bin/ci run marionette_js 2> artifacts/debug.log
|
||||
|
||||
|
||||
artifacts:
|
||||
'public/marionette_js_tests':
|
||||
type: directory
|
||||
path: '{{gaia}}/artifacts/'
|
||||
expires: '{{nextYear}}'
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupName: "Gaia javascript integration tests"
|
||||
groupSymbol: Gij
|
||||
symbol: GijTV{{chunk}}
|
||||
39
gaia/tests/taskcluster/tasks/unit_tests_b2g.yml
Executable file
39
gaia/tests/taskcluster/tasks/unit_tests_b2g.yml
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
reruns: 2
|
||||
task:
|
||||
metadata:
|
||||
name: Gaia unit tests in Mulet chunk {{chunk}}
|
||||
description: Full gaia unit test suite
|
||||
|
||||
workerType: '{{workerType}}'
|
||||
provisionerId: '{{provisionerId}}'
|
||||
scopes:
|
||||
# Source caches contains various sources (including a tarball of gaia source
|
||||
# tree)
|
||||
- docker-worker:cache:gaia-misc-caches
|
||||
|
||||
payload:
|
||||
cache:
|
||||
gaia-misc-caches: /home/worker/caches/
|
||||
|
||||
# Chunking logic is handled in ci/unit-tests-in-b2g/script
|
||||
env:
|
||||
THIS_CHUNK: '{{chunk}}'
|
||||
TOTAL_CHUNKS: '{{totalChunks}}'
|
||||
REPORTER: 'mocha-tbpl-reporter'
|
||||
NODE_MODULES_SRC: npm-cache
|
||||
|
||||
command:
|
||||
- entrypoint
|
||||
- mkdir -p artifacts && ./bin/ci run unit-tests-in-b2g 2> artifacts/debug.log
|
||||
|
||||
artifacts:
|
||||
'public/unit_tests_b2g':
|
||||
type: directory
|
||||
path: '{{gaia}}/artifacts/'
|
||||
expires: '{{nextYear}}'
|
||||
|
||||
extra:
|
||||
treeherder:
|
||||
groupSymbol: GU
|
||||
groupName: Gaia unit tests
|
||||
symbol: GU{{chunk}}
|
||||
Loading…
Reference in a new issue