bugbug/.taskcluster.yml

377 строки
14 KiB
YAML
Исходник Обычный вид История

version: 1
policy:
pullRequests: public
tasks:
$let:
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:3.7
command:
- "/bin/bash"
- "-lcx"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
2019-06-08 12:17:38 +03:00
pip install --quiet -r test-requirements.txt &&
pre-commit run -a"
metadata:
name: bugbug lint
description: bugbug lint
owner: mcastelluccio@mozilla.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"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python infra/version_check.py"
metadata:
name: bugbug tag version check
description: bugbug tag version check
owner: mcastelluccio@mozilla.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
env:
CODECOV_TOKEN: 66162f89-a4d9-420c-84bd-d10f12a428d9
command:
- "/bin/bash"
- "-lcx"
- "apt-get -qq update &&
apt-get -qq install -y python-pip &&
2019-06-08 12:17:38 +03:00
python2 -m pip install --quiet mercurial==4.8 &&
2019-06-08 12:19:01 +03:00
git clone --quiet https://github.com/mozilla/version-control-tools.git &&
git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
cp infra/hgrc /root/.hgrc &&
2019-06-08 12:17:38 +03:00
pip install --quiet -r requirements.txt &&
pip install --quiet -r extra-nlp-requirements.txt &&
pip install --quiet -r extra-nn-requirements.txt &&
pip install --quiet -r infra/spawn_data_pipeline_requirements.txt &&
2019-06-08 12:17:38 +03:00
pip install --quiet -r test-requirements.txt &&
python -m pytest --cov=./ tests/test_*.py &&
bash <(curl -s https://codecov.io/bash)"
metadata:
name: bugbug tests
description: bugbug tests
owner: mcastelluccio@mozilla.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
2019-06-08 21:50:59 +03:00
env:
CODECOV_TOKEN: 66162f89-a4d9-420c-84bd-d10f12a428d9
command:
- "/bin/bash"
- "-lcx"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
2019-06-08 21:50:59 +03:00
pip install --quiet -r test-requirements.txt &&
python -m coverage run setup.py sdist &&
pip install dist/bugbug-$(cat VERSION).tar.gz &&
2019-06-08 22:11:41 +03:00
pip install dist/bugbug-$(cat VERSION).tar.gz[nlp] &&
pip install dist/bugbug-$(cat VERSION).tar.gz[nn] &&
2019-06-08 21:50:59 +03:00
bash <(curl -s https://codecov.io/bash)"
metadata:
name: bugbug packaging test
description: bugbug packaging test
owner: mcastelluccio@mozilla.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
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
2019-06-06 19:06:16 +03:00
env:
REGISTRY: registry.hub.docker.com
VERSION:
$if: 'head_branch[:10] == "refs/tags/"'
then: {$eval: 'head_branch[10:]' }
else: "latest"
command:
2019-04-15 18:36:30 +03:00
- "/bin/sh"
- "-lcxe"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} /code &&
2019-04-15 18:36:30 +03:00
cd /code &&
git -c advice.detachedHead=false checkout ${head_rev} &&
2019-06-06 19:06:16 +03:00
taskboot --cache /cache --target /code build-compose --write /images --build-arg CHECK_MODELS=0 --tag $VERSION --tag latest"
artifacts:
2019-04-15 18:36:30 +03:00
public/bugbug:
expires: {$fromNow: '2 weeks'}
2019-04-15 18:36:30 +03:00
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: mcastelluccio@mozilla.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"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python setup.py sdist bdist_wheel &&
2019-06-08 12:17:38 +03:00
pip install --quiet twine &&
python infra/pypi.py"
metadata:
name: bugbug PyPI release
description: bugbug PyPI release
owner: mcastelluccio@mozilla.com
source: ${repository}/raw/${head_rev}/.taskcluster.yml
2019-04-18 20:49:12 +03:00
- $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")}
2019-04-18 20:49:12 +03:00
scopes:
- secrets:get:project/relman/bugbug/deploy
taskId: {$eval: as_slugid("docker_push")}
created: {$fromNow: ''}
deadline: {$fromNow: '4 hours'}
2019-04-18 20:49:12 +03:00
provisionerId: aws-provisioner-v1
workerType: github-worker
payload:
features:
taskclusterProxy:
true
maxRunTime: 3600
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
2019-04-18 20:49:12 +03:00
env:
TASKCLUSTER_SECRET: project/relman/bugbug/deploy
command:
- taskboot
- push-artifact
2019-05-03 00:46:01 +03:00
- --exclude-filter
- "*http-service*"
2019-04-18 20:49:12 +03:00
metadata:
name: bugbug docker push
description: bugbug docker push
owner: mcastelluccio@mozilla.com
2019-04-18 20:49:12 +03:00
source: ${repository}/raw/${head_rev}/.taskcluster.yml
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
then:
taskId: {$eval: as_slugid("update_hook_annotate_pipeline")}
dependencies:
- {$eval: as_slugid("docker_push")}
scopes:
- hooks:modify-hook:project-relman/bugbug-annotate
- assume:hook-id:project-relman/bugbug-annotate
created: {$fromNow: ''}
deadline: {$fromNow: '5 hours'}
provisionerId: aws-provisioner-v1
workerType: github-worker
payload:
features:
taskclusterProxy:
true
maxRunTime: 3600
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
env:
VERSION: {$eval: 'head_branch[10:]'}
command:
- "/bin/sh"
- "-lcxe"
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python infra/set_hook_version.py $VERSION infra/taskcluster-hook-annotate.json &&
taskboot --target . build-hook infra/taskcluster-hook-annotate.json project-relman bugbug-annotate"
metadata:
name: bugbug update annotate hook
description: bugbug update annotate hook
owner: mcastelluccio@mozilla.com
source: ${repository}/raw/${head_rev}/.taskcluster.yml
- $if: 'tasks_for == "github-push" && head_branch[:10] == "refs/tags/"'
then:
Add basic check method and check script (#341) * Add basic check method and check script * Ensure the check of component will correctly use super result * Add required infra to schedule model checks * Add scheduling bits for the model checks * Remove the filtering on classification * Extract counting bugs to a new function in bugzilla.py * Also checks conflated components * Fix new hook id * Call bugzilla with the count_only param to speed up the check * Fix the new hook scope to match the hook id * Fix component model check after previous refactoring * Fix component model check method * Use a bugzilla report for even faster component model check * Clarify get_product_component_count docstring We are already filtering out full component with 0 bugs * Update conflated components mapping check A conflated component could also be part of the conflated components mapping * Distinguish between non-existing full components and empty full components * Remove the filter on resolution and unnecessary url params * Update component check method Keep checks as separate as possible for clarity, we could merge them or makes them faster later * Generate dynamically the CSV report url * Fix Docker image name the hook * Implement component check number 5 Get the meaningful components for the last 6 months * Handle reviews comments * Remove extraneous print * Removes TODO * Use a different threshold ration when checking for new meaningful components As we are only checking new bugs for 6 months, adjust the threshold ration to be less sensitive to occasional burst ob bugs for q given component. * Reduce the threshold ratio As we check on a disjoint time window, reduce the chance of false positives * Handle review nits * Fix last nits
2019-05-10 13:20:23 +03:00
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
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
command:
- "/bin/sh"
- "-lcxe"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python infra/set_hook_version.py ${head_branch[10:]} infra/taskcluster-hook-pipeline-start.json &&
taskboot --target . build-hook infra/taskcluster-hook-pipeline-start.json project-relman bugbug"
routes:
- project.relman.bugbug.deploy_ending
metadata:
Add basic check method and check script (#341) * Add basic check method and check script * Ensure the check of component will correctly use super result * Add required infra to schedule model checks * Add scheduling bits for the model checks * Remove the filtering on classification * Extract counting bugs to a new function in bugzilla.py * Also checks conflated components * Fix new hook id * Call bugzilla with the count_only param to speed up the check * Fix the new hook scope to match the hook id * Fix component model check after previous refactoring * Fix component model check method * Use a bugzilla report for even faster component model check * Clarify get_product_component_count docstring We are already filtering out full component with 0 bugs * Update conflated components mapping check A conflated component could also be part of the conflated components mapping * Distinguish between non-existing full components and empty full components * Remove the filter on resolution and unnecessary url params * Update component check method Keep checks as separate as possible for clarity, we could merge them or makes them faster later * Generate dynamically the CSV report url * Fix Docker image name the hook * Implement component check number 5 Get the meaningful components for the last 6 months * Handle reviews comments * Remove extraneous print * Removes TODO * Use a different threshold ration when checking for new meaningful components As we are only checking new bugs for 6 months, adjust the threshold ration to be less sensitive to occasional burst ob bugs for q given component. * Reduce the threshold ratio As we check on a disjoint time window, reduce the chance of false positives * Handle review nits * Fix last nits
2019-05-10 13:20:23 +03:00
name: bugbug update data hook
description: bugbug update data hook
owner: mcastelluccio@mozilla.com
Add basic check method and check script (#341) * Add basic check method and check script * Ensure the check of component will correctly use super result * Add required infra to schedule model checks * Add scheduling bits for the model checks * Remove the filtering on classification * Extract counting bugs to a new function in bugzilla.py * Also checks conflated components * Fix new hook id * Call bugzilla with the count_only param to speed up the check * Fix the new hook scope to match the hook id * Fix component model check after previous refactoring * Fix component model check method * Use a bugzilla report for even faster component model check * Clarify get_product_component_count docstring We are already filtering out full component with 0 bugs * Update conflated components mapping check A conflated component could also be part of the conflated components mapping * Distinguish between non-existing full components and empty full components * Remove the filter on resolution and unnecessary url params * Update component check method Keep checks as separate as possible for clarity, we could merge them or makes them faster later * Generate dynamically the CSV report url * Fix Docker image name the hook * Implement component check number 5 Get the meaningful components for the last 6 months * Handle reviews comments * Remove extraneous print * Removes TODO * Use a different threshold ration when checking for new meaningful components As we are only checking new bugs for 6 months, adjust the threshold ration to be less sensitive to occasional burst ob bugs for q given component. * Reduce the threshold ratio As we check on a disjoint time window, reduce the chance of false positives * Handle review nits * Fix last nits
2019-05-10 13:20:23 +03:00
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
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
Add basic check method and check script (#341) * Add basic check method and check script * Ensure the check of component will correctly use super result * Add required infra to schedule model checks * Add scheduling bits for the model checks * Remove the filtering on classification * Extract counting bugs to a new function in bugzilla.py * Also checks conflated components * Fix new hook id * Call bugzilla with the count_only param to speed up the check * Fix the new hook scope to match the hook id * Fix component model check after previous refactoring * Fix component model check method * Use a bugzilla report for even faster component model check * Clarify get_product_component_count docstring We are already filtering out full component with 0 bugs * Update conflated components mapping check A conflated component could also be part of the conflated components mapping * Distinguish between non-existing full components and empty full components * Remove the filter on resolution and unnecessary url params * Update component check method Keep checks as separate as possible for clarity, we could merge them or makes them faster later * Generate dynamically the CSV report url * Fix Docker image name the hook * Implement component check number 5 Get the meaningful components for the last 6 months * Handle reviews comments * Remove extraneous print * Removes TODO * Use a different threshold ration when checking for new meaningful components As we are only checking new bugs for 6 months, adjust the threshold ration to be less sensitive to occasional burst ob bugs for q given component. * Reduce the threshold ratio As we check on a disjoint time window, reduce the chance of false positives * Handle review nits * Fix last nits
2019-05-10 13:20:23 +03:00
command:
- "/bin/sh"
- "-lcxe"
2019-06-08 12:19:01 +03:00
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python infra/set_hook_version.py ${head_branch[10:]} infra/taskcluster-hook-check-models-start.json &&
taskboot --target . build-hook infra/taskcluster-hook-check-models-start.json project-relman bugbug-checks"
Add basic check method and check script (#341) * Add basic check method and check script * Ensure the check of component will correctly use super result * Add required infra to schedule model checks * Add scheduling bits for the model checks * Remove the filtering on classification * Extract counting bugs to a new function in bugzilla.py * Also checks conflated components * Fix new hook id * Call bugzilla with the count_only param to speed up the check * Fix the new hook scope to match the hook id * Fix component model check after previous refactoring * Fix component model check method * Use a bugzilla report for even faster component model check * Clarify get_product_component_count docstring We are already filtering out full component with 0 bugs * Update conflated components mapping check A conflated component could also be part of the conflated components mapping * Distinguish between non-existing full components and empty full components * Remove the filter on resolution and unnecessary url params * Update component check method Keep checks as separate as possible for clarity, we could merge them or makes them faster later * Generate dynamically the CSV report url * Fix Docker image name the hook * Implement component check number 5 Get the meaningful components for the last 6 months * Handle reviews comments * Remove extraneous print * Removes TODO * Use a different threshold ration when checking for new meaningful components As we are only checking new bugs for 6 months, adjust the threshold ration to be less sensitive to occasional burst ob bugs for q given component. * Reduce the threshold ratio As we check on a disjoint time window, reduce the chance of false positives * Handle review nits * Fix last nits
2019-05-10 13:20:23 +03:00
metadata:
name: bugbug update check hook
description: bugbug update check hook
owner: mcastelluccio@mozilla.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_classify_patch")}
dependencies:
- {$eval: as_slugid("docker_push")}
scopes:
- hooks:modify-hook:project-relman/bugbug-classify-patch
- assume:hook-id:project-relman/bugbug-classify-patch
created: {$fromNow: ''}
deadline: {$fromNow: '5 hours'}
provisionerId: aws-provisioner-v1
workerType: github-worker
payload:
features:
taskclusterProxy:
true
maxRunTime: 3600
2019-07-05 16:36:16 +03:00
image: mozilla/taskboot:0.1.9
command:
- "/bin/sh"
- "-lcxe"
- "git clone --quiet ${repository} &&
cd bugbug &&
git -c advice.detachedHead=false checkout ${head_rev} &&
python infra/set_hook_version.py ${head_branch[10:]} infra/taskcluster-hook-classify-patch.json &&
taskboot --target . build-hook infra/taskcluster-hook-classify-patch.json project-relman bugbug-classify-patch"
metadata:
name: bugbug update classify patch hook
description: bugbug update classify patch hook
owner: mcastelluccio@mozilla.com
source: ${repository}/raw/${head_rev}/.taskcluster.yml