mozilla-taskgraph 2.0.3__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mozilla_taskgraph-3.0.0/.codespell-ignore-words.txt +1 -0
- mozilla_taskgraph-3.0.0/.github/workflows/pypi-publish.yml +24 -0
- mozilla_taskgraph-3.0.0/.gitignore +129 -0
- mozilla_taskgraph-3.0.0/.pre-commit-config.yaml +44 -0
- mozilla_taskgraph-3.0.0/.readthedocs.yml +13 -0
- mozilla_taskgraph-3.0.0/.taskcluster.yml +276 -0
- mozilla_taskgraph-3.0.0/.yamllint +10 -0
- mozilla_taskgraph-3.0.0/CHANGELOG.md +150 -0
- mozilla_taskgraph-3.0.0/CODE_OF_CONDUCT.md +8 -0
- mozilla_taskgraph-3.0.0/CONTRIBUTING.md +102 -0
- mozilla_taskgraph-3.0.0/Makefile +23 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/PKG-INFO +10 -5
- mozilla_taskgraph-3.0.0/docs/actions/index.rst +43 -0
- mozilla_taskgraph-3.0.0/docs/actions/release-promotion.rst +54 -0
- mozilla_taskgraph-3.0.0/docs/conf.py +51 -0
- mozilla_taskgraph-3.0.0/docs/index.rst +64 -0
- mozilla_taskgraph-3.0.0/docs/transforms/index.rst +7 -0
- mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/index.rst +8 -0
- mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/release_artifacts.rst +81 -0
- mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/ship-it.rst +46 -0
- mozilla_taskgraph-3.0.0/pyproject.toml +81 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/actions/release_promotion.py +1 -1
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/shipit/mark_as_shipped.py +7 -1
- mozilla_taskgraph-3.0.0/taskcluster/config.yml +32 -0
- mozilla_taskgraph-3.0.0/taskcluster/docker/fetch/Dockerfile +24 -0
- mozilla_taskgraph-3.0.0/taskcluster/docker/fetch/REGISTRY +1 -0
- mozilla_taskgraph-3.0.0/taskcluster/docker/python/Dockerfile +38 -0
- mozilla_taskgraph-3.0.0/taskcluster/kinds/codecov/kind.yml +45 -0
- mozilla_taskgraph-3.0.0/taskcluster/kinds/docker-image/kind.yml +13 -0
- mozilla_taskgraph-3.0.0/taskcluster/kinds/fetch/kind.yml +21 -0
- mozilla_taskgraph-3.0.0/taskcluster/kinds/release-promotion-dummy/kind.yml +16 -0
- mozilla_taskgraph-3.0.0/taskcluster/kinds/test/kind.yml +27 -0
- mozilla_taskgraph-3.0.0/taskcluster/mt_taskgraph/target_tasks.py +14 -0
- mozilla_taskgraph-3.0.0/taskcluster/mt_taskgraph/transforms/test.py +31 -0
- mozilla_taskgraph-3.0.0/taskcluster/scripts/codecov-upload.py +40 -0
- mozilla_taskgraph-3.0.0/test/__init__.py +0 -0
- mozilla_taskgraph-3.0.0/test/actions/__init__.py +0 -0
- mozilla_taskgraph-3.0.0/test/actions/test_release_promotion.py +237 -0
- mozilla_taskgraph-3.0.0/test/conftest.py +210 -0
- mozilla_taskgraph-3.0.0/test/data/taskcluster/config.yml +25 -0
- mozilla_taskgraph-3.0.0/test/data/testver.py +2 -0
- mozilla_taskgraph-3.0.0/test/transforms/test_scriptworker_release_artifacts.py +100 -0
- mozilla_taskgraph-3.0.0/test/transforms/test_scriptworker_shipit.py +171 -0
- mozilla_taskgraph-3.0.0/uv.lock +1028 -0
- mozilla-taskgraph-2.0.3/pyproject.toml +0 -28
- mozilla-taskgraph-2.0.3/setup.cfg +0 -4
- mozilla-taskgraph-2.0.3/setup.py +0 -38
- mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/PKG-INFO +0 -25
- mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/SOURCES.txt +0 -23
- mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/dependency_links.txt +0 -1
- mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/requires.txt +0 -1
- mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/top_level.txt +0 -1
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/LICENSE +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/README.md +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/__init__.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/actions/__init__.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/config.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/__init__.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/__init__.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/release_artifacts.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/shipit/__init__.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/version.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/worker_types.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/test/test_register.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/test/test_version.py +0 -0
- {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/test/test_worker_types.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pullrequests
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
jobs:
|
|
6
|
+
pypi-publish:
|
|
7
|
+
name: upload release to PyPI
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
environment: release
|
|
10
|
+
permissions:
|
|
11
|
+
id-token: write
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout sources
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
- uses: actions/setup-python@v5
|
|
16
|
+
with:
|
|
17
|
+
python-version: '3.11'
|
|
18
|
+
cache: 'pip'
|
|
19
|
+
- name: Build package distributions
|
|
20
|
+
run: |
|
|
21
|
+
pip install build
|
|
22
|
+
python -m build
|
|
23
|
+
- name: Publish package distributions to PyPI
|
|
24
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv
|
|
107
|
+
env/
|
|
108
|
+
venv/
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Pyre type checker
|
|
129
|
+
.pyre/
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# See https://pre-commit.com for more information
|
|
2
|
+
# See https://pre-commit.com/hooks.html for more hooks
|
|
3
|
+
---
|
|
4
|
+
ci:
|
|
5
|
+
autofix_commit_msg: "style: pre-commit.ci auto fixes [...]"
|
|
6
|
+
autoupdate_commit_msg: "chore: pre-commit autoupdate"
|
|
7
|
+
autoupdate_schedule: monthly
|
|
8
|
+
repos:
|
|
9
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
10
|
+
rev: v5.0.0
|
|
11
|
+
hooks:
|
|
12
|
+
- id: trailing-whitespace
|
|
13
|
+
- id: end-of-file-fixer
|
|
14
|
+
- id: check-yaml
|
|
15
|
+
exclude: template
|
|
16
|
+
- id: check-added-large-files
|
|
17
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
18
|
+
rev: 'v0.6.9'
|
|
19
|
+
hooks:
|
|
20
|
+
- id: ruff
|
|
21
|
+
args: [--fix, --exit-non-zero-on-fix]
|
|
22
|
+
- repo: https://github.com/psf/black
|
|
23
|
+
rev: 24.10.0
|
|
24
|
+
hooks:
|
|
25
|
+
- id: black
|
|
26
|
+
- repo: https://github.com/adrienverge/yamllint.git
|
|
27
|
+
rev: v1.35.1
|
|
28
|
+
hooks:
|
|
29
|
+
- id: yamllint
|
|
30
|
+
exclude: template
|
|
31
|
+
- repo: https://github.com/codespell-project/codespell
|
|
32
|
+
rev: v2.3.0
|
|
33
|
+
hooks:
|
|
34
|
+
- id: codespell
|
|
35
|
+
entry: codespell -I .codespell-ignore-words.txt
|
|
36
|
+
exclude: >
|
|
37
|
+
(?x)^(
|
|
38
|
+
test/test_util_path.py
|
|
39
|
+
)$
|
|
40
|
+
- repo: https://github.com/compilerla/conventional-pre-commit
|
|
41
|
+
rev: v3.4.0
|
|
42
|
+
hooks:
|
|
43
|
+
- id: conventional-pre-commit
|
|
44
|
+
stages: [commit-msg]
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# yamllint disable rule:line-length
|
|
2
|
+
# This file is rendered via JSON-e by
|
|
3
|
+
# - github events - https://github.com/taskcluster/taskcluster/tree/main/services/github
|
|
4
|
+
# - cron tasks - https://hg.mozilla.org/ci/ci-admin/file/default/build-decision/
|
|
5
|
+
# - action tasks - taskcluster/taskgraph/actions/registry.py
|
|
6
|
+
---
|
|
7
|
+
version: 1
|
|
8
|
+
reporting: checks-v1
|
|
9
|
+
policy:
|
|
10
|
+
pullRequests: public_restricted
|
|
11
|
+
tasks:
|
|
12
|
+
- $let:
|
|
13
|
+
trustDomain: "taskgraph"
|
|
14
|
+
ownerEmail:
|
|
15
|
+
$switch:
|
|
16
|
+
'tasks_for == "github-push"': '${event.pusher.email}'
|
|
17
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.user.login}@users.noreply.github.com'
|
|
18
|
+
'tasks_for in ["cron", "action"]': '${tasks_for}@noreply.mozilla.org'
|
|
19
|
+
baseRepoUrl:
|
|
20
|
+
$switch:
|
|
21
|
+
'tasks_for == "github-push"': '${event.repository.html_url}'
|
|
22
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.base.repo.html_url}'
|
|
23
|
+
'tasks_for in ["cron", "action"]': '${repository.url}'
|
|
24
|
+
repoUrl:
|
|
25
|
+
$switch:
|
|
26
|
+
'tasks_for == "github-push"': '${event.repository.html_url}'
|
|
27
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.head.repo.html_url}'
|
|
28
|
+
'tasks_for in ["cron", "action"]': '${repository.url}'
|
|
29
|
+
project:
|
|
30
|
+
$switch:
|
|
31
|
+
'tasks_for == "github-push"': '${event.repository.name}'
|
|
32
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.head.repo.name}'
|
|
33
|
+
'tasks_for in ["cron", "action"]': '${repository.project}'
|
|
34
|
+
head_branch:
|
|
35
|
+
$switch:
|
|
36
|
+
'tasks_for[:19] == "github-pull-request"': ${event.pull_request.head.ref}
|
|
37
|
+
'tasks_for == "github-push"': ${event.ref}
|
|
38
|
+
'tasks_for == "github-release"': '${event.release.target_commitish}'
|
|
39
|
+
'tasks_for in ["action", "cron"]': '${push.branch}'
|
|
40
|
+
base_ref:
|
|
41
|
+
$switch:
|
|
42
|
+
'tasks_for[:19] == "github-pull-request"': ${event.pull_request.base.ref}
|
|
43
|
+
'tasks_for == "github-push" && event.base_ref': ${event.base_ref}
|
|
44
|
+
'tasks_for == "github-push" && !(event.base_ref)': ${event.ref}
|
|
45
|
+
'tasks_for in ["cron", "action"]': '${push.branch}'
|
|
46
|
+
head_ref:
|
|
47
|
+
$switch:
|
|
48
|
+
'tasks_for[:19] == "github-pull-request"': ${event.pull_request.head.ref}
|
|
49
|
+
'tasks_for == "github-push"': ${event.ref}
|
|
50
|
+
'tasks_for in ["cron", "action"]': '${push.branch}'
|
|
51
|
+
base_sha:
|
|
52
|
+
$switch:
|
|
53
|
+
'tasks_for == "github-push"': '${event.before}'
|
|
54
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.base.sha}'
|
|
55
|
+
'tasks_for in ["cron", "action"]': '${push.revision}'
|
|
56
|
+
head_sha:
|
|
57
|
+
$switch:
|
|
58
|
+
'tasks_for == "github-push"': '${event.after}'
|
|
59
|
+
'tasks_for[:19] == "github-pull-request"': '${event.pull_request.head.sha}'
|
|
60
|
+
'tasks_for in ["cron", "action"]': '${push.revision}'
|
|
61
|
+
ownTaskId:
|
|
62
|
+
$switch:
|
|
63
|
+
'"github" in tasks_for': {$eval: as_slugid("decision_task")}
|
|
64
|
+
'tasks_for in ["cron", "action"]': '${ownTaskId}'
|
|
65
|
+
pullRequestAction:
|
|
66
|
+
$switch:
|
|
67
|
+
'tasks_for[:19] == "github-pull-request"': ${event.action}
|
|
68
|
+
$default: 'UNDEFINED'
|
|
69
|
+
isPullRequest:
|
|
70
|
+
$eval: 'tasks_for[:19] == "github-pull-request"'
|
|
71
|
+
in:
|
|
72
|
+
$if: >
|
|
73
|
+
tasks_for in ["action", "cron"]
|
|
74
|
+
|| (tasks_for == "github-push" && head_branch == "refs/heads/main")
|
|
75
|
+
|| (isPullRequest && pullRequestAction in ["opened", "reopened", "synchronize"])
|
|
76
|
+
then:
|
|
77
|
+
$let:
|
|
78
|
+
level:
|
|
79
|
+
$if: 'tasks_for in ["github-push", "cron", "action"] && repoUrl == "https://github.com/mozilla-releng/mozilla-taskgraph"'
|
|
80
|
+
then: 3
|
|
81
|
+
else: 1
|
|
82
|
+
in:
|
|
83
|
+
taskId: {$if: 'tasks_for != "action"', then: '${ownTaskId}'}
|
|
84
|
+
taskGroupId:
|
|
85
|
+
$if: 'tasks_for == "action"'
|
|
86
|
+
then:
|
|
87
|
+
'${action.taskGroupId}'
|
|
88
|
+
else:
|
|
89
|
+
'${ownTaskId}' # same as taskId; this is how automation identifies a decision task
|
|
90
|
+
schedulerId: '${trustDomain}-level-${level}'
|
|
91
|
+
created: {$fromNow: ''}
|
|
92
|
+
deadline: {$fromNow: '1 day'}
|
|
93
|
+
expires: {$fromNow: '1 year 1 second'} # 1 second so artifacts expire first
|
|
94
|
+
metadata:
|
|
95
|
+
$merge:
|
|
96
|
+
- owner: "${ownerEmail}"
|
|
97
|
+
source: "${repoUrl}/raw/${head_sha}/.taskcluster.yml"
|
|
98
|
+
- $switch:
|
|
99
|
+
'tasks_for == "github-push" || isPullRequest':
|
|
100
|
+
name: "Decision Task"
|
|
101
|
+
description: 'The task that creates all of the other tasks in the task graph'
|
|
102
|
+
'tasks_for == "action"':
|
|
103
|
+
name: "Action: ${action.title}"
|
|
104
|
+
description: |
|
|
105
|
+
${action.description}
|
|
106
|
+
|
|
107
|
+
Action triggered by clientID `${clientId}`
|
|
108
|
+
$default:
|
|
109
|
+
name: "Decision Task for cron job ${cron.job_name}"
|
|
110
|
+
description: 'Created by a [cron task](https://firefox-ci-tc.services.mozilla.com/tasks/${cron.task_id})'
|
|
111
|
+
|
|
112
|
+
provisionerId: "${trustDomain}-${level}"
|
|
113
|
+
workerType: "decision-gcp"
|
|
114
|
+
|
|
115
|
+
tags:
|
|
116
|
+
$switch:
|
|
117
|
+
'tasks_for == "github-push" || isPullRequest':
|
|
118
|
+
createdForUser: "${ownerEmail}"
|
|
119
|
+
kind: decision-task
|
|
120
|
+
'tasks_for == "action"':
|
|
121
|
+
createdForUser: '${ownerEmail}'
|
|
122
|
+
kind: 'action-callback'
|
|
123
|
+
'tasks_for == "cron"':
|
|
124
|
+
kind: cron-task
|
|
125
|
+
|
|
126
|
+
routes:
|
|
127
|
+
$flatten:
|
|
128
|
+
- checks
|
|
129
|
+
- $switch:
|
|
130
|
+
'tasks_for == "github-push"':
|
|
131
|
+
- "index.${trustDomain}.v2.${project}.latest.taskgraph.decision"
|
|
132
|
+
- "index.${trustDomain}.v2.${project}.revision.${head_sha}.taskgraph.decision"
|
|
133
|
+
'tasks_for == "action"':
|
|
134
|
+
- "index.${trustDomain}.v2.${project}.revision.${head_sha}.taskgraph.actions.${ownTaskId}"
|
|
135
|
+
'tasks_for == "cron"':
|
|
136
|
+
- "index.${trustDomain}.v2.${project}.latest.taskgraph.decision-${cron.job_name}"
|
|
137
|
+
- "index.${trustDomain}.v2.${project}.revision.${head_sha}.taskgraph.decision-${cron.job_name}"
|
|
138
|
+
# list each cron task on this revision, so actions can find them
|
|
139
|
+
- 'index.${trustDomain}.v2.${project}.revision.${head_sha}.cron.${ownTaskId}'
|
|
140
|
+
$default: []
|
|
141
|
+
|
|
142
|
+
scopes:
|
|
143
|
+
$switch:
|
|
144
|
+
'tasks_for in ["github-push"]':
|
|
145
|
+
$let:
|
|
146
|
+
short_head_ref:
|
|
147
|
+
$if: 'head_ref[:10] == "refs/tags/"'
|
|
148
|
+
then: {$eval: 'head_ref[10:]'}
|
|
149
|
+
else:
|
|
150
|
+
$if: 'head_ref[:11] == "refs/heads/"'
|
|
151
|
+
then: {$eval: 'head_ref[11:]'}
|
|
152
|
+
else: ${head_ref}
|
|
153
|
+
in:
|
|
154
|
+
- 'assume:repo:${repoUrl[8:]}:branch:${short_head_ref}'
|
|
155
|
+
'isPullRequest':
|
|
156
|
+
- 'assume:repo:github.com/${event.pull_request.base.repo.full_name}:${tasks_for[7:]}'
|
|
157
|
+
'tasks_for == "action"':
|
|
158
|
+
- 'assume:repo:${repoUrl[8:]}:action:${action.action_perm}'
|
|
159
|
+
$default:
|
|
160
|
+
- 'assume:repo:${repoUrl[8:]}:cron:${cron.job_name}'
|
|
161
|
+
|
|
162
|
+
dependencies: []
|
|
163
|
+
requires: all-completed
|
|
164
|
+
|
|
165
|
+
priority:
|
|
166
|
+
$switch:
|
|
167
|
+
'tasks_for == "cron"': low
|
|
168
|
+
'tasks_for == "github-push"|| isPullRequest': very-low
|
|
169
|
+
$default: lowest # tasks_for == 'action'
|
|
170
|
+
retries: 5
|
|
171
|
+
|
|
172
|
+
payload:
|
|
173
|
+
$let:
|
|
174
|
+
normProject:
|
|
175
|
+
$eval: 'join(split(project, "-"), "_")'
|
|
176
|
+
normProjectUpper:
|
|
177
|
+
$eval: 'uppercase(join(split(project, "-"), "_"))'
|
|
178
|
+
in:
|
|
179
|
+
env:
|
|
180
|
+
# run-task uses these to check out the source; the inputs to
|
|
181
|
+
# `taskgraph decision` are all on the command line.
|
|
182
|
+
$merge:
|
|
183
|
+
- ${normProjectUpper}_BASE_REPOSITORY: '${baseRepoUrl}'
|
|
184
|
+
${normProjectUpper}_BASE_REF: '${base_ref}'
|
|
185
|
+
${normProjectUpper}_BASE_REV: '${base_sha}'
|
|
186
|
+
${normProjectUpper}_HEAD_REPOSITORY: '${repoUrl}'
|
|
187
|
+
${normProjectUpper}_HEAD_REF: '${head_ref}'
|
|
188
|
+
${normProjectUpper}_HEAD_REV: '${head_sha}'
|
|
189
|
+
${normProjectUpper}_REPOSITORY_TYPE: git
|
|
190
|
+
REPOSITORIES:
|
|
191
|
+
$json:
|
|
192
|
+
${normProject}: ${normProject}
|
|
193
|
+
- $if: 'isPullRequest'
|
|
194
|
+
then:
|
|
195
|
+
${normProjectUpper}_PULL_REQUEST_NUMBER: '${event.pull_request.number}'
|
|
196
|
+
- $if: 'tasks_for == "action"'
|
|
197
|
+
then:
|
|
198
|
+
ACTION_TASK_GROUP_ID: '${action.taskGroupId}' # taskGroupId of the target task
|
|
199
|
+
ACTION_TASK_ID: {$json: {$eval: 'taskId'}} # taskId of the target task (JSON-encoded)
|
|
200
|
+
ACTION_INPUT: {$json: {$eval: 'input'}}
|
|
201
|
+
ACTION_CALLBACK: '${action.cb_name}'
|
|
202
|
+
|
|
203
|
+
cache:
|
|
204
|
+
"${trustDomain}-project-${project}-level-${level}-checkouts-sparse-v2": /builds/worker/checkouts
|
|
205
|
+
|
|
206
|
+
features:
|
|
207
|
+
taskclusterProxy: true
|
|
208
|
+
|
|
209
|
+
image: mozillareleases/taskgraph:run-task-v11.1.0@sha256:d1415fd3a68f956d86bba1f0e12c940648b95a1f0132d7866c0aec76cc3a070c
|
|
210
|
+
maxRunTime: 1800
|
|
211
|
+
|
|
212
|
+
command:
|
|
213
|
+
- run-task
|
|
214
|
+
- '--${normProject}-checkout=/builds/worker/checkouts/src'
|
|
215
|
+
- '--'
|
|
216
|
+
- bash
|
|
217
|
+
- -cx
|
|
218
|
+
- $let:
|
|
219
|
+
extraArgs: {$if: 'tasks_for == "cron"', then: '${cron.quoted_args}', else: ''}
|
|
220
|
+
in:
|
|
221
|
+
$if: 'tasks_for == "action"'
|
|
222
|
+
then: >
|
|
223
|
+
cd /builds/worker/checkouts/src &&
|
|
224
|
+
ln -s /builds/worker/artifacts artifacts &&
|
|
225
|
+
pip3 install --user --break-system-packages . &&
|
|
226
|
+
~/.local/bin/taskgraph action-callback
|
|
227
|
+
else: >
|
|
228
|
+
cd /builds/worker/checkouts/src &&
|
|
229
|
+
ln -s /builds/worker/artifacts artifacts &&
|
|
230
|
+
pip3 install --user --break-system-packages . &&
|
|
231
|
+
~/.local/bin/taskgraph decision
|
|
232
|
+
--pushlog-id='0'
|
|
233
|
+
--pushdate='0'
|
|
234
|
+
--project='${project}'
|
|
235
|
+
--owner='${ownerEmail}'
|
|
236
|
+
--level='${level}'
|
|
237
|
+
--repository-type=git
|
|
238
|
+
--tasks-for='${tasks_for}'
|
|
239
|
+
--base-repository='${baseRepoUrl}'
|
|
240
|
+
--base-ref='${base_ref}'
|
|
241
|
+
--base-rev='${base_sha}'
|
|
242
|
+
--head-repository='${repoUrl}'
|
|
243
|
+
--head-ref='${head_ref}'
|
|
244
|
+
--head-rev='${head_sha}'
|
|
245
|
+
${extraArgs}
|
|
246
|
+
|
|
247
|
+
artifacts:
|
|
248
|
+
'public':
|
|
249
|
+
type: 'directory'
|
|
250
|
+
path: '/builds/worker/artifacts'
|
|
251
|
+
expires: {$fromNow: '1 year'}
|
|
252
|
+
'public/docker-contexts':
|
|
253
|
+
type: 'directory'
|
|
254
|
+
path: '/builds/worker/checkouts/src/docker-contexts'
|
|
255
|
+
# This needs to be at least the deadline of the
|
|
256
|
+
# decision task + the docker-image task deadlines.
|
|
257
|
+
# It is set to a week to allow for some time for
|
|
258
|
+
# debugging, but they are not useful long-term.
|
|
259
|
+
expires: {$fromNow: '7 day'}
|
|
260
|
+
|
|
261
|
+
extra:
|
|
262
|
+
$merge:
|
|
263
|
+
- $if: 'tasks_for == "action"'
|
|
264
|
+
then:
|
|
265
|
+
parent: '${action.taskGroupId}'
|
|
266
|
+
action:
|
|
267
|
+
name: '${action.name}'
|
|
268
|
+
context:
|
|
269
|
+
taskGroupId: '${action.taskGroupId}'
|
|
270
|
+
taskId: {$eval: 'taskId'}
|
|
271
|
+
input: {$eval: 'input'}
|
|
272
|
+
clientId: {$eval: 'clientId'}
|
|
273
|
+
- $if: 'tasks_for == "cron"'
|
|
274
|
+
then:
|
|
275
|
+
cron: {$json: {$eval: 'cron'}}
|
|
276
|
+
- tasks_for: '${tasks_for}'
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
## 3.0.0 (2024-10-08)
|
|
2
|
+
|
|
3
|
+
### BREAKING CHANGE
|
|
4
|
+
|
|
5
|
+
- Drops support for Taskgraph <11
|
|
6
|
+
|
|
7
|
+
### Feat
|
|
8
|
+
|
|
9
|
+
- support Taskgraph >11, <12
|
|
10
|
+
- use 'scriptworker.scope-prefix' config for mark-as-shipped
|
|
11
|
+
|
|
12
|
+
## 2.0.3 (2024-06-21)
|
|
13
|
+
|
|
14
|
+
### Fix
|
|
15
|
+
|
|
16
|
+
- declare support for Taskgraph 9.x
|
|
17
|
+
|
|
18
|
+
## 2.0.2 (2024-05-09)
|
|
19
|
+
|
|
20
|
+
### Fix
|
|
21
|
+
|
|
22
|
+
- **bitrise**: Properly handle bitrise payloads to allow permutations of same workflow
|
|
23
|
+
|
|
24
|
+
## 2.0.1 (2024-05-08)
|
|
25
|
+
|
|
26
|
+
### Feat
|
|
27
|
+
|
|
28
|
+
- **bitrise**: Add commit_message and pull_request_id to bitrise payloads
|
|
29
|
+
|
|
30
|
+
### Fix
|
|
31
|
+
|
|
32
|
+
- **version**: Fix version to 2.0.1
|
|
33
|
+
|
|
34
|
+
## 2.0.0 (2024-05-08)
|
|
35
|
+
|
|
36
|
+
### Feat
|
|
37
|
+
|
|
38
|
+
- **bitrisescript**: Add global and workflow params
|
|
39
|
+
|
|
40
|
+
## 1.5.0 (2024-04-11)
|
|
41
|
+
|
|
42
|
+
### Feat
|
|
43
|
+
|
|
44
|
+
- **bitrise**: support new 'artifact_prefix' task config
|
|
45
|
+
|
|
46
|
+
## 1.4.1 (2024-04-09)
|
|
47
|
+
|
|
48
|
+
### Fix
|
|
49
|
+
|
|
50
|
+
- declare support for Taskgraph 8.x
|
|
51
|
+
|
|
52
|
+
## 1.4.0 (2024-04-05)
|
|
53
|
+
|
|
54
|
+
### Feat
|
|
55
|
+
|
|
56
|
+
- **bitrise**: support an easier format for environment variables
|
|
57
|
+
- **bitrise**: support an easier format for environment variables
|
|
58
|
+
|
|
59
|
+
## 1.3.2 (2024-04-02)
|
|
60
|
+
|
|
61
|
+
### Fix
|
|
62
|
+
|
|
63
|
+
- **bitrise**: normalize refs in bitrise payload builder
|
|
64
|
+
|
|
65
|
+
## 1.3.1 (2024-03-28)
|
|
66
|
+
|
|
67
|
+
### Fix
|
|
68
|
+
|
|
69
|
+
- Move bitrise build parameters under a 'build_params' namespace
|
|
70
|
+
|
|
71
|
+
## 1.3.0 (2024-03-22)
|
|
72
|
+
|
|
73
|
+
### Feat
|
|
74
|
+
|
|
75
|
+
- **relpro**: allow passing "version" in release-promotion input
|
|
76
|
+
- create a bitrisescript payload builder
|
|
77
|
+
- Add dummy release promotion task to allow this repository to be used to verify upcoming changes to Ship It & scopes
|
|
78
|
+
|
|
79
|
+
### Fix
|
|
80
|
+
|
|
81
|
+
- look for version.txt in cwd, not where mozilla-taskgraph is installed
|
|
82
|
+
|
|
83
|
+
## 1.2.2 (2024-01-24)
|
|
84
|
+
|
|
85
|
+
### Fix
|
|
86
|
+
|
|
87
|
+
- **relpro**: set 'version' parameter
|
|
88
|
+
|
|
89
|
+
## 1.2.1 (2024-01-18)
|
|
90
|
+
|
|
91
|
+
### Fix
|
|
92
|
+
|
|
93
|
+
- **shipit**: make 'shipit.product' optional in graph_config schema
|
|
94
|
+
|
|
95
|
+
## 1.2.0 (2024-01-16)
|
|
96
|
+
|
|
97
|
+
### Feat
|
|
98
|
+
|
|
99
|
+
- **shipit**: allow 'mark-as-shipped' to define product in task
|
|
100
|
+
|
|
101
|
+
### Fix
|
|
102
|
+
|
|
103
|
+
- **shipit**: use task name instead of 'mark-as-shipped' as default label
|
|
104
|
+
|
|
105
|
+
## 1.1.1 (2024-01-04)
|
|
106
|
+
|
|
107
|
+
### Fix
|
|
108
|
+
|
|
109
|
+
- **release_promotion**: add missing build_number parameter
|
|
110
|
+
|
|
111
|
+
## 1.1.0 (2023-12-20)
|
|
112
|
+
|
|
113
|
+
### Feat
|
|
114
|
+
|
|
115
|
+
- add a 'release-promotion' action
|
|
116
|
+
|
|
117
|
+
## 1.0.2 (2023-12-08)
|
|
118
|
+
|
|
119
|
+
### Fix
|
|
120
|
+
|
|
121
|
+
- upgrade to Taskgraph 7.0.0
|
|
122
|
+
|
|
123
|
+
## 1.0.1 (2023-09-19)
|
|
124
|
+
|
|
125
|
+
### Fix
|
|
126
|
+
|
|
127
|
+
- mark compatible with Taskgraph 6.x
|
|
128
|
+
|
|
129
|
+
## 1.0.0 (2023-07-28)
|
|
130
|
+
|
|
131
|
+
### Feat
|
|
132
|
+
|
|
133
|
+
- **shipit**: add shipit mark_as_shipped transforms and worker-type
|
|
134
|
+
|
|
135
|
+
## 0.1.1 (2023-06-21)
|
|
136
|
+
|
|
137
|
+
### Fix
|
|
138
|
+
|
|
139
|
+
- add missing __init__.py files
|
|
140
|
+
|
|
141
|
+
## 0.1.0 (2023-06-21)
|
|
142
|
+
|
|
143
|
+
### Feat
|
|
144
|
+
|
|
145
|
+
- add 'release_artifacts' transforms
|
|
146
|
+
- create initial scaffolding for mozilla-taskgraph
|
|
147
|
+
|
|
148
|
+
### Fix
|
|
149
|
+
|
|
150
|
+
- use proper module name in setup.py
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Community Participation Guidelines
|
|
2
|
+
|
|
3
|
+
This repository is governed by Mozilla's code of conduct and etiquette guidelines.
|
|
4
|
+
For more details, please read the
|
|
5
|
+
[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
|
|
6
|
+
|
|
7
|
+
## How to Report
|
|
8
|
+
For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page.
|