mozilla-taskgraph 2.0.3__tar.gz → 3.0.1__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.1/.codespell-ignore-words.txt +1 -0
  2. mozilla_taskgraph-3.0.1/.github/workflows/pypi-publish.yml +24 -0
  3. mozilla_taskgraph-3.0.1/.gitignore +129 -0
  4. mozilla_taskgraph-3.0.1/.pre-commit-config.yaml +44 -0
  5. mozilla_taskgraph-3.0.1/.readthedocs.yml +13 -0
  6. mozilla_taskgraph-3.0.1/.taskcluster.yml +276 -0
  7. mozilla_taskgraph-3.0.1/.yamllint +10 -0
  8. mozilla_taskgraph-3.0.1/CHANGELOG.md +156 -0
  9. mozilla_taskgraph-3.0.1/CODE_OF_CONDUCT.md +8 -0
  10. mozilla_taskgraph-3.0.1/CONTRIBUTING.md +102 -0
  11. mozilla_taskgraph-3.0.1/Makefile +23 -0
  12. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/PKG-INFO +10 -5
  13. mozilla_taskgraph-3.0.1/docs/actions/index.rst +43 -0
  14. mozilla_taskgraph-3.0.1/docs/actions/release-promotion.rst +54 -0
  15. mozilla_taskgraph-3.0.1/docs/conf.py +51 -0
  16. mozilla_taskgraph-3.0.1/docs/index.rst +64 -0
  17. mozilla_taskgraph-3.0.1/docs/transforms/index.rst +7 -0
  18. mozilla_taskgraph-3.0.1/docs/transforms/scriptworker/index.rst +8 -0
  19. mozilla_taskgraph-3.0.1/docs/transforms/scriptworker/release_artifacts.rst +81 -0
  20. mozilla_taskgraph-3.0.1/docs/transforms/scriptworker/ship-it.rst +46 -0
  21. mozilla_taskgraph-3.0.1/pyproject.toml +81 -0
  22. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/actions/release_promotion.py +1 -1
  23. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/transforms/scriptworker/shipit/mark_as_shipped.py +7 -1
  24. mozilla_taskgraph-3.0.1/taskcluster/config.yml +32 -0
  25. mozilla_taskgraph-3.0.1/taskcluster/docker/fetch/Dockerfile +24 -0
  26. mozilla_taskgraph-3.0.1/taskcluster/docker/fetch/REGISTRY +1 -0
  27. mozilla_taskgraph-3.0.1/taskcluster/docker/python/Dockerfile +38 -0
  28. mozilla_taskgraph-3.0.1/taskcluster/kinds/codecov/kind.yml +45 -0
  29. mozilla_taskgraph-3.0.1/taskcluster/kinds/docker-image/kind.yml +13 -0
  30. mozilla_taskgraph-3.0.1/taskcluster/kinds/fetch/kind.yml +21 -0
  31. mozilla_taskgraph-3.0.1/taskcluster/kinds/release-promotion-dummy/kind.yml +16 -0
  32. mozilla_taskgraph-3.0.1/taskcluster/kinds/test/kind.yml +27 -0
  33. mozilla_taskgraph-3.0.1/taskcluster/mt_taskgraph/target_tasks.py +14 -0
  34. mozilla_taskgraph-3.0.1/taskcluster/mt_taskgraph/transforms/test.py +31 -0
  35. mozilla_taskgraph-3.0.1/taskcluster/scripts/codecov-upload.py +40 -0
  36. mozilla_taskgraph-3.0.1/test/__init__.py +0 -0
  37. mozilla_taskgraph-3.0.1/test/actions/__init__.py +0 -0
  38. mozilla_taskgraph-3.0.1/test/actions/test_release_promotion.py +237 -0
  39. mozilla_taskgraph-3.0.1/test/conftest.py +210 -0
  40. mozilla_taskgraph-3.0.1/test/data/taskcluster/config.yml +25 -0
  41. mozilla_taskgraph-3.0.1/test/data/testver.py +2 -0
  42. mozilla_taskgraph-3.0.1/test/transforms/test_scriptworker_release_artifacts.py +100 -0
  43. mozilla_taskgraph-3.0.1/test/transforms/test_scriptworker_shipit.py +171 -0
  44. mozilla_taskgraph-3.0.1/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.1}/LICENSE +0 -0
  54. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/README.md +0 -0
  55. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/__init__.py +0 -0
  56. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/actions/__init__.py +0 -0
  57. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/config.py +0 -0
  58. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/transforms/__init__.py +0 -0
  59. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/transforms/scriptworker/__init__.py +0 -0
  60. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/transforms/scriptworker/release_artifacts.py +0 -0
  61. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/transforms/scriptworker/shipit/__init__.py +0 -0
  62. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/version.py +0 -0
  63. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/src/mozilla_taskgraph/worker_types.py +0 -0
  64. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/test/test_register.py +0 -0
  65. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/test/test_version.py +0 -0
  66. {mozilla-taskgraph-2.0.3 → mozilla_taskgraph-3.0.1}/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,156 @@
1
+ ## 3.0.1 (2024-10-25)
2
+
3
+ ### Fix
4
+
5
+ - declare support for Taskgraph 12.x
6
+
7
+ ## 3.0.0 (2024-10-08)
8
+
9
+ ### BREAKING CHANGE
10
+
11
+ - Drops support for Taskgraph <11
12
+
13
+ ### Feat
14
+
15
+ - support Taskgraph >11, <12
16
+ - use 'scriptworker.scope-prefix' config for mark-as-shipped
17
+
18
+ ## 2.0.3 (2024-06-21)
19
+
20
+ ### Fix
21
+
22
+ - declare support for Taskgraph 9.x
23
+
24
+ ## 2.0.2 (2024-05-09)
25
+
26
+ ### Fix
27
+
28
+ - **bitrise**: Properly handle bitrise payloads to allow permutations of same workflow
29
+
30
+ ## 2.0.1 (2024-05-08)
31
+
32
+ ### Feat
33
+
34
+ - **bitrise**: Add commit_message and pull_request_id to bitrise payloads
35
+
36
+ ### Fix
37
+
38
+ - **version**: Fix version to 2.0.1
39
+
40
+ ## 2.0.0 (2024-05-08)
41
+
42
+ ### Feat
43
+
44
+ - **bitrisescript**: Add global and workflow params
45
+
46
+ ## 1.5.0 (2024-04-11)
47
+
48
+ ### Feat
49
+
50
+ - **bitrise**: support new 'artifact_prefix' task config
51
+
52
+ ## 1.4.1 (2024-04-09)
53
+
54
+ ### Fix
55
+
56
+ - declare support for Taskgraph 8.x
57
+
58
+ ## 1.4.0 (2024-04-05)
59
+
60
+ ### Feat
61
+
62
+ - **bitrise**: support an easier format for environment variables
63
+ - **bitrise**: support an easier format for environment variables
64
+
65
+ ## 1.3.2 (2024-04-02)
66
+
67
+ ### Fix
68
+
69
+ - **bitrise**: normalize refs in bitrise payload builder
70
+
71
+ ## 1.3.1 (2024-03-28)
72
+
73
+ ### Fix
74
+
75
+ - Move bitrise build parameters under a 'build_params' namespace
76
+
77
+ ## 1.3.0 (2024-03-22)
78
+
79
+ ### Feat
80
+
81
+ - **relpro**: allow passing "version" in release-promotion input
82
+ - create a bitrisescript payload builder
83
+ - Add dummy release promotion task to allow this repository to be used to verify upcoming changes to Ship It & scopes
84
+
85
+ ### Fix
86
+
87
+ - look for version.txt in cwd, not where mozilla-taskgraph is installed
88
+
89
+ ## 1.2.2 (2024-01-24)
90
+
91
+ ### Fix
92
+
93
+ - **relpro**: set 'version' parameter
94
+
95
+ ## 1.2.1 (2024-01-18)
96
+
97
+ ### Fix
98
+
99
+ - **shipit**: make 'shipit.product' optional in graph_config schema
100
+
101
+ ## 1.2.0 (2024-01-16)
102
+
103
+ ### Feat
104
+
105
+ - **shipit**: allow 'mark-as-shipped' to define product in task
106
+
107
+ ### Fix
108
+
109
+ - **shipit**: use task name instead of 'mark-as-shipped' as default label
110
+
111
+ ## 1.1.1 (2024-01-04)
112
+
113
+ ### Fix
114
+
115
+ - **release_promotion**: add missing build_number parameter
116
+
117
+ ## 1.1.0 (2023-12-20)
118
+
119
+ ### Feat
120
+
121
+ - add a 'release-promotion' action
122
+
123
+ ## 1.0.2 (2023-12-08)
124
+
125
+ ### Fix
126
+
127
+ - upgrade to Taskgraph 7.0.0
128
+
129
+ ## 1.0.1 (2023-09-19)
130
+
131
+ ### Fix
132
+
133
+ - mark compatible with Taskgraph 6.x
134
+
135
+ ## 1.0.0 (2023-07-28)
136
+
137
+ ### Feat
138
+
139
+ - **shipit**: add shipit mark_as_shipped transforms and worker-type
140
+
141
+ ## 0.1.1 (2023-06-21)
142
+
143
+ ### Fix
144
+
145
+ - add missing __init__.py files
146
+
147
+ ## 0.1.0 (2023-06-21)
148
+
149
+ ### Feat
150
+
151
+ - add 'release_artifacts' transforms
152
+ - create initial scaffolding for mozilla-taskgraph
153
+
154
+ ### Fix
155
+
156
+ - 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.