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 && flake8 && python infra/version_check.py" metadata: name: bugbug lint description: bugbug lint owner: ${user}@users.noreply.github.com source: ${repository}/raw/${head_rev}/.taskcluster.yml - taskId: {$eval: as_slugid("training_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 run.py --train --goal bug && python run.py --goal bug" metadata: name: bugbug training test description: bugbug training test 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" - "git clone ${repository} && cd bugbug && git checkout ${head_rev} && pip install -r requirements.txt && pip install -r test-requirements.txt && python -c 'from bugbug import bugzilla, db; db.download()' && 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("rollback_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 -c 'from bugbug import bugzilla, db; db.download()' && python -m bugbug.bug_snapshot" metadata: name: bugbug rollback test description: bugbug rollback test 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: '1 hour'} provisionerId: aws-provisioner-v1 workerType: releng-svc payload: capabilities: privileged: true maxRunTime: 3600 image: babadie/taskboot:latest env: GIT_REPOSITORY: ${repository} GIT_REVISION: ${head_rev} command: - taskboot - build - infra/dockerfile.base - --write - /base.tar artifacts: public/bugbug-base.tar: expires: {$fromNow: '2 weeks'} path: /base.tar type: file scopes: - docker-worker:capability:privileged 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("training_test_task")} - {$eval: as_slugid("tests_task")} - {$eval: as_slugid("rollback_test_task")} - {$eval: as_slugid("packaging_test_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