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.
Files changed (66) hide show
  1. mozilla_taskgraph-3.0.0/.codespell-ignore-words.txt +1 -0
  2. mozilla_taskgraph-3.0.0/.github/workflows/pypi-publish.yml +24 -0
  3. mozilla_taskgraph-3.0.0/.gitignore +129 -0
  4. mozilla_taskgraph-3.0.0/.pre-commit-config.yaml +44 -0
  5. mozilla_taskgraph-3.0.0/.readthedocs.yml +13 -0
  6. mozilla_taskgraph-3.0.0/.taskcluster.yml +276 -0
  7. mozilla_taskgraph-3.0.0/.yamllint +10 -0
  8. mozilla_taskgraph-3.0.0/CHANGELOG.md +150 -0
  9. mozilla_taskgraph-3.0.0/CODE_OF_CONDUCT.md +8 -0
  10. mozilla_taskgraph-3.0.0/CONTRIBUTING.md +102 -0
  11. mozilla_taskgraph-3.0.0/Makefile +23 -0
  12. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/PKG-INFO +10 -5
  13. mozilla_taskgraph-3.0.0/docs/actions/index.rst +43 -0
  14. mozilla_taskgraph-3.0.0/docs/actions/release-promotion.rst +54 -0
  15. mozilla_taskgraph-3.0.0/docs/conf.py +51 -0
  16. mozilla_taskgraph-3.0.0/docs/index.rst +64 -0
  17. mozilla_taskgraph-3.0.0/docs/transforms/index.rst +7 -0
  18. mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/index.rst +8 -0
  19. mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/release_artifacts.rst +81 -0
  20. mozilla_taskgraph-3.0.0/docs/transforms/scriptworker/ship-it.rst +46 -0
  21. mozilla_taskgraph-3.0.0/pyproject.toml +81 -0
  22. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/actions/release_promotion.py +1 -1
  23. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/shipit/mark_as_shipped.py +7 -1
  24. mozilla_taskgraph-3.0.0/taskcluster/config.yml +32 -0
  25. mozilla_taskgraph-3.0.0/taskcluster/docker/fetch/Dockerfile +24 -0
  26. mozilla_taskgraph-3.0.0/taskcluster/docker/fetch/REGISTRY +1 -0
  27. mozilla_taskgraph-3.0.0/taskcluster/docker/python/Dockerfile +38 -0
  28. mozilla_taskgraph-3.0.0/taskcluster/kinds/codecov/kind.yml +45 -0
  29. mozilla_taskgraph-3.0.0/taskcluster/kinds/docker-image/kind.yml +13 -0
  30. mozilla_taskgraph-3.0.0/taskcluster/kinds/fetch/kind.yml +21 -0
  31. mozilla_taskgraph-3.0.0/taskcluster/kinds/release-promotion-dummy/kind.yml +16 -0
  32. mozilla_taskgraph-3.0.0/taskcluster/kinds/test/kind.yml +27 -0
  33. mozilla_taskgraph-3.0.0/taskcluster/mt_taskgraph/target_tasks.py +14 -0
  34. mozilla_taskgraph-3.0.0/taskcluster/mt_taskgraph/transforms/test.py +31 -0
  35. mozilla_taskgraph-3.0.0/taskcluster/scripts/codecov-upload.py +40 -0
  36. mozilla_taskgraph-3.0.0/test/__init__.py +0 -0
  37. mozilla_taskgraph-3.0.0/test/actions/__init__.py +0 -0
  38. mozilla_taskgraph-3.0.0/test/actions/test_release_promotion.py +237 -0
  39. mozilla_taskgraph-3.0.0/test/conftest.py +210 -0
  40. mozilla_taskgraph-3.0.0/test/data/taskcluster/config.yml +25 -0
  41. mozilla_taskgraph-3.0.0/test/data/testver.py +2 -0
  42. mozilla_taskgraph-3.0.0/test/transforms/test_scriptworker_release_artifacts.py +100 -0
  43. mozilla_taskgraph-3.0.0/test/transforms/test_scriptworker_shipit.py +171 -0
  44. mozilla_taskgraph-3.0.0/uv.lock +1028 -0
  45. mozilla-taskgraph-2.0.3/pyproject.toml +0 -28
  46. mozilla-taskgraph-2.0.3/setup.cfg +0 -4
  47. mozilla-taskgraph-2.0.3/setup.py +0 -38
  48. mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/PKG-INFO +0 -25
  49. mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/SOURCES.txt +0 -23
  50. mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/dependency_links.txt +0 -1
  51. mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/requires.txt +0 -1
  52. mozilla-taskgraph-2.0.3/src/mozilla_taskgraph.egg-info/top_level.txt +0 -1
  53. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/LICENSE +0 -0
  54. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/README.md +0 -0
  55. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/__init__.py +0 -0
  56. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/actions/__init__.py +0 -0
  57. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/config.py +0 -0
  58. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/__init__.py +0 -0
  59. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/__init__.py +0 -0
  60. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/release_artifacts.py +0 -0
  61. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/transforms/scriptworker/shipit/__init__.py +0 -0
  62. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/version.py +0 -0
  63. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/src/mozilla_taskgraph/worker_types.py +0 -0
  64. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/test/test_register.py +0 -0
  65. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.0}/test/test_version.py +0 -0
  66. {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,13 @@
1
+ ---
2
+ version: 2
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.11"
7
+ python:
8
+ install:
9
+ - requirements: requirements/docs.txt
10
+ - method: pip
11
+ path: .
12
+ sphinx:
13
+ configuration: docs/conf.py
@@ -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,10 @@
1
+ ---
2
+ extends: default
3
+
4
+ rules:
5
+ document-end:
6
+ present: false
7
+ line-length: disable
8
+
9
+ ignore: |
10
+ .tox
@@ -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.