Skip to content

Instantly share code, notes, and snippets.

@rail
Created October 14, 2016 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rail/da29a4f25c747d166494ff233d53c43a to your computer and use it in GitHub Desktop.
Save rail/da29a4f25c747d166494ff233d53c43a to your computer and use it in GitHub Desktop.
.../templates/firefox/bb_update_verify.yml.tmpl | 15 +++-
.../templates/firefox/release_graph.yml.tmpl | 87 +++++++++++++++++++++-
.../templates/firefox/tc_update_verify.yml.tmpl | 13 +++-
3 files changed, 107 insertions(+), 8 deletions(-)
diff --git a/releasetasks/templates/firefox/bb_update_verify.yml.tmpl b/releasetasks/templates/firefox/bb_update_verify.yml.tmpl
index 3ccb734..5014e08 100644
--- a/releasetasks/templates/firefox/bb_update_verify.yml.tmpl
+++ b/releasetasks/templates/firefox/bb_update_verify.yml.tmpl
@@ -1,20 +1,29 @@
-{% for channel in release_channels %}
{% set uv_totalchunks = 12 %}
{% for chunk in range(1, uv_totalchunks + 1) %}
{% set uv_buildername = "release-{}_{}_{}_update_verify".format(branch, product, platform) %}
{% set task_name = "{}_{}_{}".format(uv_buildername, channel, chunk) %}
-
taskId: "{{ stableSlugId(task_name) }}"
requires:
+ {% if "candidates" in dependencies %}
{% for upstream_builder in artifact_completes_builders + artifact_partials_builders + balrog_submission_builders %}
- {{ stableSlugId(upstream_builder) }}
{% endfor %}
+ {% endif %}
+ {% if "updates" in dependencies %}
- {{ stableSlugId("release-{}-{}_updates".format(branch, product)) }}
+ {% endif %}
+ {% if "uptake" in dependencies %}
+ - {{ stableSligId("release-{}-{}_uptake_monitoring".format(branch, product)) }}
+ {% endif %}
+ {% if "balrog" in dependencies %}
+ - {{ stableSligId("release-{}-{}_publish_balrog".format(branch, product)) }}
+ {% endif %}
reruns: 5
task:
provisionerId: buildbot-bridge
workerType: buildbot-bridge
created: "{{ now }}"
deadline: "{{ now.replace(days=4) }}"
expires: "{{ never }}"
priority: "high"
@@ -35,25 +44,25 @@
build_number: {{ buildNumber }}
revision: "{{ revision }}"
release_promotion: true
script_repo_revision: "{{ "{product}_{version}_BUILD{buildNumber}_RUNTIME".format(
product=product.upper(),
version=version.replace('.', '_'),
buildNumber=buildNumber ) }}"
NO_BBCONFIG: "1"
- VERIFY_CONFIG: "{{ channel }}-{{ product }}-{{ platform }}.cfg"
+ VERIFY_CONFIG: "{{ channel_config_prefix }}-{{ product }}-{{ platform }}.cfg"
TOTAL_CHUNKS: "{{ uv_totalchunks }}"
THIS_CHUNK: "{{ chunk }}"
+ CHANNEL: "{{ channel }}"
metadata:
owner: release@mozilla.com
source: https://github.com/mozilla/releasetasks
name: "{{ platform }} {{ channel }} update verification {{ chunk }}/{{ uv_totalchunks }}"
description: |
Verifies updates for {{ platform }}
extra:
{{ common_extras(taskname=task_name, locales=["null"], platform=platform) | indent(12)}}
{{ task_notifications("{} {} update verification {}/{}".format(platform, channel, chunk, uv_totalchunks), completed=["releasetasks"], failed=["releasetasks"], exception=["releasetasks"]) | indent(12) }}
{% endfor %}
-{% endfor %}
diff --git a/releasetasks/templates/firefox/release_graph.yml.tmpl b/releasetasks/templates/firefox/release_graph.yml.tmpl
index 37d1811..6c815cd 100644
--- a/releasetasks/templates/firefox/release_graph.yml.tmpl
+++ b/releasetasks/templates/firefox/release_graph.yml.tmpl
@@ -123,26 +123,105 @@ tasks:
{% if updates_builder_enabled is defined and updates_builder_enabled %}
{% macro updates_task() %}
{% include "updates.yml.tmpl" %}
{% endmacro %}
{{ updates_task()|indent(4) }}
{% endif %}
{% if update_verify_enabled is defined and update_verify_enabled %}
- {% macro updateVerify_task(platform) %}
+ {% Possible dependencies:
+ candidates: files moved to candidate and published to balrog
+ updates: patcher config bumped
+ uptake: files published to CDNs and have enough uptake
+ balrog: published to users (beta, esr, release)
+ TODO: move deps, channel, and channel_config_prefix to configs. They will depend on channle patterns we use there.
+ TODO: verify the deps, do not allow unknown values
+ %}
+
+ {% macro updateVerify_task(platform, dependencies, channel, channel_config_prefix) %}
{% if platform in ["linux", "linux64"] %}
{% include "tc_update_verify.yml.tmpl" %}
{% else %}
{% include "bb_update_verify.yml.tmpl" %}
{% endif %}
{% endmacro %}
- {% for plat in en_US_config["platforms"].keys() %}
- {{ updateVerify_task(plat)|indent(4) }}
- {% endfor %}
+
+ {% if is_beta %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "uptake"], "beta-cdntest", "beta")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "balrog"], "beta", "beta")|indent(4) }}
+ {% endfor %}
+
+ {% elif is_release_candidate %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "candidates"], "beta-cdntest", "beta")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "candidates"], "release-localtest", "release")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "balrog"], "beta", "beta")|indent(4) }}
+ {% endfor %}
+
+ {# TODO: graph2 only #}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["uptake"], "release-cdntest", "release")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["balrog"], "release", "release")|indent(4) }}
+ {% endfor %}
+
+ {% elif is_dot_release %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "candidates"], "release-localtest", "release")|indent(4) }}
+ {% endfor %}
+
+ {# TODO: Graph1 and graph2 #}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {# TODO: updates is not required in graph2 #}
+ {{ updateVerify_task(plat, ["updates", "uptake"], "release-cdntest", "release")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["balrog"], "release", "release")|indent(4) }}
+ {% endfor %}
+
+ {% elif is_esr %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["updates", "candidates"], "esr-localtest", "esr45")|indent(4) }}
+ {% endfor %}
+
+ {# TODO: Graph1 and graph2 #}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {# TODO: updates is not required in graph2 #}
+ {{ updateVerify_task(plat, ["updates", "uptake"], "esr-cdntest", "esr")|indent(4) }}
+ {% endfor %}
+
+ {% for plat in en_US_config["platforms"].keys() %}
+ {{ updateVerify_task(plat, ["balrog"], "esr", "esr45")|indent(4) }}
+ {% endfor %}
+
+ {% else %}
+ $!!!@#BOOOOM!
+ {% endif %}
+
{% endif %}
# push to mirrors
{% if push_to_releases_enabled %}
{% macro push_to_releases_tasks() %}
{% include "push_to_releases.yml.tmpl" %}
{% endmacro %}
{{ push_to_releases_tasks()|indent(4) }}
diff --git a/releasetasks/templates/firefox/tc_update_verify.yml.tmpl b/releasetasks/templates/firefox/tc_update_verify.yml.tmpl
index e6ad0d2..a10e805 100644
--- a/releasetasks/templates/firefox/tc_update_verify.yml.tmpl
+++ b/releasetasks/templates/firefox/tc_update_verify.yml.tmpl
@@ -1,19 +1,29 @@
{% for channel in release_channels %}
{% set uv_totalchunks = 12 %}
{% for chunk in range(1, uv_totalchunks + 1) %}
{% set uv_buildername = "{}_{}_update_verify_{}".format(platform, channel, chunk) %}
-
taskId: "{{ stableSlugId(uv_buildername) }}"
requires:
+ {% if "candidates" in dependencies %}
{% for upstream_builder in artifact_completes_builders + artifact_partials_builders + balrog_submission_builders %}
- {{ stableSlugId(upstream_builder) }}
{% endfor %}
+ {% endif %}
+ {% if "updates" in dependencies %}
- {{ stableSlugId("release-{}-{}_updates".format(branch, product)) }}
+ {% endif %}
+ {% if "uptake" in dependencies %}
+ - {{ stableSligId("release-{}-{}_uptake_monitoring".format(branch, product)) }}
+ {% endif %}
+ {% if "balrog" in dependencies %}
+ - {{ stableSligId("release-{}-{}_publish_balrog".format(branch, product)) }}
+ {% endif %}
reruns: 5
task:
provisionerId: aws-provisioner-v1
workerType: opt-linux64
created: "{{ now }}"
deadline: "{{ now.replace(days=4) }}"
expires: "{{ never }}"
priority: "high"
@@ -34,20 +44,21 @@
env:
TAG: "{{ "{product}_{version}_BUILD{buildNumber}_RUNTIME".format(
product=product.upper(),
version=version.replace('.', '_'),
buildNumber=buildNumber ) }}"
TOTAL_CHUNKS: "{{ uv_totalchunks }}"
THIS_CHUNK: "{{ chunk }}"
NO_BBCONFIG: "1"
- VERIFY_CONFIG: "{{ "{channel}-{product}-{platform}.cfg".format(
+ VERIFY_CONFIG: "{{ "{channel_config_prefix}-{product}-{platform}.cfg".format(
platform=platform,
channel=channel,
product=product) }}"
+ CHANNEL: "{{ channel }}"
metadata:
owner: release@mozilla.com
source: https://github.com/mozilla/releasetasks
name: "{{ platform }} {{ channel }} update verification {{ chunk }}/{{ uv_totalchunks }}"
description: |
Verifies updates for {{ platform }}
extra:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment