diff --git a/docs/howtos/releases.md b/docs/howtos/releases.md index d0615c868..c9b75ac94 100644 --- a/docs/howtos/releases.md +++ b/docs/howtos/releases.md @@ -12,11 +12,15 @@ Nightly builds are automatically generated using a taskcluster cron task. ## Release builds -Release builds are generated from the `release-vXXX` branches. Whenever a commit is pushed there, -we build all artifacts needed for the release. Once we're ready to publish the release, we run the -taskcluster release promotion action which signs and publishes the artifacts. +Release builds are generated from the `release-vXXX` branches and published with the +`release-promotion` action, which has several phases: -TODO: explain release-promotion more. +- Whenever a commit is pushed to a release branch, we build candidate artifacts. These artifacts are + shippable -- if we decide that the release is ready, they just need to be copied to the correct + location. +- The `push` phase of `release-promotion` copies the candidate to a staging location where they can + be tested. +- The `ship` phase of `release-promotion` copies the candidate to their final, published, location. ## What to do at the end of a nightly cycle @@ -38,11 +42,9 @@ index 8cd923873..6482018e0 100644 groupId: org.mozilla.appservices ``` - * Create a PR on `main` that starts a new CHANGELOG haeder. + * Create a PR on `main` that starts a new CHANGELOG header. -3. Trigger release-promotion once the PRs are approved, merged, and CI has completed - - * TODO: explain how to do this +3. Ask releng to trigger release-promotion once the PRs are approved, merged, and CI has completed 4. Tag the release with `automation/tag-release.py [major-version-number]` diff --git a/taskcluster/app_services_taskgraph/__init__.py b/taskcluster/app_services_taskgraph/__init__.py index 7fdd8f1dd..da558380b 100644 --- a/taskcluster/app_services_taskgraph/__init__.py +++ b/taskcluster/app_services_taskgraph/__init__.py @@ -33,7 +33,7 @@ def register(graph_config): # preview build for a particular application-services branch. 'preview-build': str, # Release type. We set this to "release" for non-nightly builds, it defaults to "nightly". - 'release': Optional(str), + 'release-type': Optional(str), }) def _import_modules(modules): diff --git a/taskcluster/app_services_taskgraph/target_tasks.py b/taskcluster/app_services_taskgraph/target_tasks.py index 79dd081d9..c028e40b7 100644 --- a/taskcluster/app_services_taskgraph/target_tasks.py +++ b/taskcluster/app_services_taskgraph/target_tasks.py @@ -22,7 +22,7 @@ def target_tasks_all(full_task_graph, parameters, graph_config): def filter(task): return (filter_for_tasks_for(task, parameters) and task.attributes.get("run-on-pr-type", "all") in ("full-ci", "all") - and task.attributes.get('release') != 'release-only') + and task.attributes.get('release-type') != 'release-only') return [l for l, task in full_task_graph.tasks.items() if filter(task)] @@ -33,6 +33,6 @@ def target_tasks_default(full_task_graph, parameters, graph_config): def filter(task): return (filter_for_tasks_for(task, parameters) and task.attributes.get("run-on-pr-type", "all") in ("normal-ci", "all") - and task.attributes.get('release') != 'release-only') + and task.attributes.get('release-type') != 'release-only') return [l for l, task in full_task_graph.tasks.items() if filter(task)] diff --git a/taskcluster/ci/build-summary/kind.yml b/taskcluster/ci/build-summary/kind.yml index 19c49391c..458a0a0e7 100644 --- a/taskcluster/ci/build-summary/kind.yml +++ b/taskcluster/ci/build-summary/kind.yml @@ -20,7 +20,7 @@ transforms: tasks: deps_complete: attributes: - release: release-only + release-type: release-only label: "Build summary task" description: "Summary task for the nightly/release builds that reports failures." alerts: diff --git a/taskcluster/ci/release-publish/kind.yml b/taskcluster/ci/release-publish/kind.yml index 3311ba67d..8f006f95b 100644 --- a/taskcluster/ci/release-publish/kind.yml +++ b/taskcluster/ci/release-publish/kind.yml @@ -23,7 +23,7 @@ transforms: tasks: release_publish: attributes: - release: release-only + release-type: release-only label: "Build publish task" description: "Publish build artifacts" worker-type: b-linux diff --git a/taskcluster/test/params/release-branch-push.yml b/taskcluster/test/params/release-branch-push.yml index ac61eeeea..a317607f4 100644 --- a/taskcluster/test/params/release-branch-push.yml +++ b/taskcluster/test/params/release-branch-push.yml @@ -19,4 +19,4 @@ pushlog_id: '0' repository_type: git target_tasks_method: release tasks_for: github-push -release: "release" +release-type: "release"