зеркало из https://github.com/mozilla/bugbug.git
300 строки
10 KiB
YAML
300 строки
10 KiB
YAML
version: 1
|
|
policy:
|
|
pullRequests: public
|
|
tasks:
|
|
$let:
|
|
decision_task_id: {$eval: as_slugid("decision_task")}
|
|
expires_in: {$fromNow: '1 year'}
|
|
user: ${event.sender.login}
|
|
|
|
head_branch:
|
|
$if: 'tasks_for == "github-pull-request"'
|
|
then: ${event.pull_request.head.ref}
|
|
else:
|
|
$if: 'tasks_for == "github-push"'
|
|
then: ${event.ref}
|
|
else: ${event.release.target_commitish}
|
|
|
|
head_rev:
|
|
$if: 'tasks_for == "github-pull-request"'
|
|
then: ${event.pull_request.head.sha}
|
|
else:
|
|
$if: 'tasks_for == "github-push"'
|
|
then: ${event.after}
|
|
else: ${event.release.tag_name}
|
|
|
|
repository:
|
|
$if: 'tasks_for == "github-pull-request"'
|
|
then: ${event.pull_request.head.repo.html_url}
|
|
else: ${event.repository.html_url}
|
|
in:
|
|
$if: 'tasks_for in ["github-pull-request", "github-push"]'
|
|
then:
|
|
- taskId: {$eval: as_slugid("lint_task")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '1 hour'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
maxRunTime: 3600
|
|
image: python
|
|
command:
|
|
- "/bin/bash"
|
|
- "-lcx"
|
|
- "git clone ${repository} &&
|
|
cd bugbug &&
|
|
git checkout ${head_rev} &&
|
|
pip install -r test-requirements.txt &&
|
|
pre-commit run -a" # TODO Be smarter and run only on modified files
|
|
metadata:
|
|
name: bugbug lint
|
|
description: bugbug lint
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- $if: 'tasks_for == "github-push"'
|
|
then:
|
|
taskId: {$eval: as_slugid("version_check_task")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '1 hour'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
maxRunTime: 3600
|
|
image: python
|
|
command:
|
|
- "/bin/bash"
|
|
- "-lcx"
|
|
- "git clone ${repository} &&
|
|
cd bugbug &&
|
|
git checkout ${head_rev} &&
|
|
python infra/version_check.py"
|
|
metadata:
|
|
name: bugbug tag version check
|
|
description: bugbug tag version check
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- taskId: {$eval: as_slugid("tests_task")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '1 hour'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
maxRunTime: 3600
|
|
image: python
|
|
command:
|
|
- "/bin/bash"
|
|
- "-lcx"
|
|
- "apt-get update &&
|
|
apt-get install -y python-pip &&
|
|
python2 -m pip install mercurial==4.8 &&
|
|
git clone https://github.com/mozilla/version-control-tools.git &&
|
|
git clone ${repository} &&
|
|
cd bugbug &&
|
|
git checkout ${head_rev} &&
|
|
cp infra/hgrc /root/.hgrc &&
|
|
pip install -r requirements.txt &&
|
|
pip install -r extra-nlp-requirements.txt &&
|
|
pip install -r extra-nn-requirements.txt &&
|
|
pip install -r test-requirements.txt &&
|
|
python -m pytest tests/test_*.py"
|
|
metadata:
|
|
name: bugbug tests
|
|
description: bugbug tests
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- taskId: {$eval: as_slugid("packaging_test_task")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '1 hour'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
maxRunTime: 3600
|
|
image: python
|
|
command:
|
|
- "/bin/bash"
|
|
- "-lcx"
|
|
- "git clone ${repository} &&
|
|
cd bugbug &&
|
|
git checkout ${head_rev} &&
|
|
pip install -r requirements.txt &&
|
|
python setup.py sdist &&
|
|
pip install dist/bugbug-$(cat VERSION).tar.gz"
|
|
metadata:
|
|
name: bugbug packaging test
|
|
description: bugbug packaging test
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- taskId: {$eval: as_slugid("docker_build")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '3 hours'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: releng-svc
|
|
payload:
|
|
capabilities:
|
|
privileged: true
|
|
maxRunTime: 10800
|
|
image: mozilla/taskboot:0.1.3
|
|
command:
|
|
- "/bin/sh"
|
|
- "-lcxe"
|
|
- "git clone ${repository} /code &&
|
|
cd /code &&
|
|
git checkout ${head_rev} &&
|
|
taskboot --cache /cache --target /code build-compose --registry=registry.hub.docker.com --write /images --build-arg CHECK_MODELS=0"
|
|
artifacts:
|
|
public/bugbug:
|
|
expires: {$fromNow: '2 weeks'}
|
|
path: /images
|
|
type: directory
|
|
cache:
|
|
bugbug-build: /cache
|
|
scopes:
|
|
- docker-worker:capability:privileged
|
|
- docker-worker:cache:bugbug-build
|
|
metadata:
|
|
name: bugbug docker build
|
|
description: bugbug docker build
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
|
|
then:
|
|
dependencies:
|
|
- {$eval: as_slugid("lint_task")}
|
|
- {$eval: as_slugid("tests_task")}
|
|
- {$eval: as_slugid("packaging_test_task")}
|
|
- {$eval: as_slugid("version_check_task")}
|
|
scopes:
|
|
- secrets:get:project/relman/bugbug/deploy
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '1 hour'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
features:
|
|
taskclusterProxy:
|
|
true
|
|
maxRunTime: 3600
|
|
image: python
|
|
command:
|
|
- "/bin/bash"
|
|
- "-lcx"
|
|
- "git clone ${repository} &&
|
|
cd bugbug &&
|
|
git checkout ${head_rev} &&
|
|
python setup.py sdist bdist_wheel &&
|
|
pip install twine &&
|
|
python infra/pypi.py"
|
|
metadata:
|
|
name: bugbug PyPI release
|
|
description: bugbug PyPI release
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
|
|
then:
|
|
dependencies:
|
|
- {$eval: as_slugid("docker_build")}
|
|
- {$eval: as_slugid("lint_task")}
|
|
- {$eval: as_slugid("version_check_task")}
|
|
- {$eval: as_slugid("tests_task")}
|
|
- {$eval: as_slugid("packaging_test_task")}
|
|
scopes:
|
|
- secrets:get:project/relman/bugbug/deploy
|
|
taskId: {$eval: as_slugid("docker_push")}
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '4 hours'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
features:
|
|
taskclusterProxy:
|
|
true
|
|
maxRunTime: 3600
|
|
image: mozilla/taskboot:0.1.3
|
|
env:
|
|
TASKCLUSTER_SECRET: project/relman/bugbug/deploy
|
|
command:
|
|
- taskboot
|
|
- push-artifact
|
|
- --exclude-filter
|
|
- "*http-service*"
|
|
metadata:
|
|
name: bugbug docker push
|
|
description: bugbug docker push
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
|
|
then:
|
|
taskId: {$eval: as_slugid("update_hook_data_pipeline")}
|
|
dependencies:
|
|
- {$eval: as_slugid("docker_push")}
|
|
scopes:
|
|
- hooks:modify-hook:project-relman/bugbug
|
|
- assume:hook-id:project-relman/bugbug
|
|
- queue:route:project.relman.bugbug.deploy_ending.*
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '5 hours'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
features:
|
|
taskclusterProxy:
|
|
true
|
|
maxRunTime: 3600
|
|
image: mozilla/taskboot:0.1.3
|
|
env:
|
|
GIT_REPOSITORY: ${repository}
|
|
GIT_REVISION: ${head_rev}
|
|
command:
|
|
- taskboot
|
|
- build-hook
|
|
- infra/taskcluster-hook-pipeline-start.json
|
|
- project-relman
|
|
- bugbug
|
|
routes:
|
|
- project.relman.bugbug.deploy_ending
|
|
metadata:
|
|
name: bugbug update data hook
|
|
description: bugbug update data hook
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|
|
|
|
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
|
|
then:
|
|
taskId: {$eval: as_slugid("update_hook_check_pipeline")}
|
|
dependencies:
|
|
- {$eval: as_slugid("docker_push")}
|
|
scopes:
|
|
- hooks:modify-hook:project-relman/bugbug-checks
|
|
- assume:hook-id:project-relman/bugbug-checks
|
|
created: {$fromNow: ''}
|
|
deadline: {$fromNow: '5 hours'}
|
|
provisionerId: aws-provisioner-v1
|
|
workerType: github-worker
|
|
payload:
|
|
features:
|
|
taskclusterProxy:
|
|
true
|
|
maxRunTime: 3600
|
|
image: mozilla/taskboot:0.1.3
|
|
env:
|
|
GIT_REPOSITORY: ${repository}
|
|
GIT_REVISION: ${head_rev}
|
|
command:
|
|
- taskboot
|
|
- build-hook
|
|
- infra/taskcluster-hook-check-models-start.json
|
|
- project-relman
|
|
- bugbug-checks
|
|
metadata:
|
|
name: bugbug update check hook
|
|
description: bugbug update check hook
|
|
owner: ${user}@users.noreply.github.com
|
|
source: ${repository}/raw/${head_rev}/.taskcluster.yml
|