cipd_roll: Don't roll backwards
Bug: b/417562879
Change-Id: Icf34fbef6cd5c417f73618519edecfb0af23a518
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/291372
Commit-Queue: Auto-Submit <auto-submit@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Reviewed-by: Ina Huh <ihuh@google.com>
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
diff --git a/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json b/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
index aca2cb7..9a0daf5 100644
--- a/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
+++ b/recipe_modules/bazel_roll/tests/cipd_package.expected/success.json
@@ -451,6 +451,190 @@
},
{
"cmd": [],
+ "name": "clang.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "clang.checking against old version.fuchsia/third_party/clang/mac-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "fuchsia/third_party/clang/mac-amd64",
+ "-version",
+ "git_revision:8280651ad57cb9fb24a404cec2401040c28dec98",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "clang.checking against old version.fuchsia/third_party/clang/mac-amd64.cipd describe fuchsia/third_party/clang/mac-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:828\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/mac-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "clang.checking against old version.fuchsia/third_party/clang/mac-arm64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "fuchsia/third_party/clang/mac-arm64",
+ "-version",
+ "git_revision:8280651ad57cb9fb24a404cec2401040c28dec98",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "clang.checking against old version.fuchsia/third_party/clang/mac-arm64.cipd describe fuchsia/third_party/clang/mac-arm64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:828\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/mac-arm64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "clang.checking against old version.fuchsia/third_party/clang/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "fuchsia/third_party/clang/linux-amd64",
+ "-version",
+ "git_revision:8280651ad57cb9fb24a404cec2401040c28dec98",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "clang.checking against old version.fuchsia/third_party/clang/linux-amd64.cipd describe fuchsia/third_party/clang/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:828\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/third_party/clang/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "clang.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/api.py b/recipe_modules/cipd_roll/api.py
index 8fed4cb..08b0fb2 100644
--- a/recipe_modules/cipd_roll/api.py
+++ b/recipe_modules/cipd_roll/api.py
@@ -17,6 +17,7 @@
import collections
import dataclasses
+import datetime
import json
import re
from typing import TYPE_CHECKING
@@ -177,10 +178,14 @@
package_paths = [spec]
package_tags = {}
+ package_data = {}
tags = None
for package_path in package_paths:
try:
- package_data = self.m.cipd.describe(package_path, ref)
+ package_data[package_path] = self.m.cipd.describe(
+ package_path,
+ ref,
+ )
except self.m.step.StepFailure:
# If we got here this package doesn't have the correct ref.
@@ -194,7 +199,7 @@
else:
package_tags[package_path] = set(
x.tag
- for x in package_data.tags
+ for x in package_data[package_path].tags
if x.tag.startswith(tag + ':')
)
if tags is None:
@@ -249,14 +254,39 @@
presentation.step_summary_text = new_version
presentation.logs['old version'] = old_version
- if old_version:
- if old_version in tags:
- with self.m.step.nest('already up-to-date') as presentation:
- presentation.step_summary_text = (
- 'current version {} in common tags'
- ).format(old_version)
+ if old_version and ':' in old_version:
+ with self.m.step.nest('checking against old version'):
+ if old_version in tags:
+ pres = self.m.step.empty('already up-to-date').presentation
+ pres.step_summary_text = (
+ f'current version {old_version} in common tags'
+ )
return None
+ for package_path in package_paths:
+ with self.m.step.nest(package_path):
+ old_package_data = self.m.cipd.describe(
+ package_path,
+ old_version,
+ )
+
+ old_ts = datetime.datetime.fromtimestamp(
+ old_package_data.registered_ts,
+ )
+ new_ts = datetime.datetime.fromtimestamp(
+ package_data[package_path].registered_ts,
+ )
+
+ if old_ts > new_ts:
+ pres = self.m.step.empty(
+ 'new package is older than current package',
+ ).presentation
+ pres.step_summary_text = [
+ f'* current: {old_ts.isoformat()}',
+ f'* new: {new_ts.isoformat()}',
+ ]
+ return None
+
# Verify that the specified packages at this version were uploaded by a
# service account, raising a StepFailure exception otherwise.
self.m.cipd_util.check_uploader(package_paths, new_version)
diff --git a/recipe_modules/cipd_roll/test_api.py b/recipe_modules/cipd_roll/test_api.py
index c8c5903..44c1ada 100644
--- a/recipe_modules/cipd_roll/test_api.py
+++ b/recipe_modules/cipd_roll/test_api.py
@@ -34,16 +34,43 @@
return result
- def describe(self, prefix, package_path, tags, **kwargs):
+ def _describe(self, name, package_path, tags=None, tstamp=None, **kwargs):
+ describe_kwargs = {}
+ if tags:
+ describe_kwargs["test_data_tags"] = [
+ f'{name}:{value}' for name, value in tags
+ ]
+ if tstamp:
+ describe_kwargs["tstamp"] = tstamp
+
return self.step_data(
- f'{prefix}.cipd describe {package_path}',
+ name,
self.m.cipd.example_describe(
package_path,
- test_data_tags=[f'{name}:{value}' for name, value in tags],
+ **describe_kwargs,
),
**kwargs,
)
+ def describe(self, prefix, package_path, tags=None, **kwargs):
+ return self._describe(
+ name=f'{prefix}.cipd describe {package_path}',
+ package_path=package_path,
+ tags=tags,
+ **kwargs,
+ )
+
+ def describe_current(self, prefix, package_path, tags=None, **kwargs):
+ return self._describe(
+ name=(
+ f'{prefix}.checking against old version.{package_path}.'
+ f'cipd describe {package_path}'
+ ),
+ package_path=package_path,
+ tags=tags,
+ **kwargs,
+ )
+
def no_ref(self, prefix, package_paths):
res = None
for package_path in package_paths:
diff --git a/recipe_modules/cipd_roll/tests/full.expected/missing_tag.json b/recipe_modules/cipd_roll/tests/full.expected/missing_tag.json
index 1e31a2d..39cbe01 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/missing_tag.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/missing_tag.json
@@ -174,7 +174,23 @@
"@@@STEP_LOG_LINE@json.output@ ],@@@",
"@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
"@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
- "@@@STEP_LOG_LINE@json.output@ \"tags\": []@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
"@@@STEP_LOG_LINE@json.output@ }@@@",
"@@@STEP_LOG_LINE@json.output@}@@@",
"@@@STEP_LOG_END@json.output@@@",
@@ -364,9 +380,16 @@
},
{
"cmd": [],
- "name": "host_tools.already up-to-date",
+ "name": "host_tools.checking against old version",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.already up-to-date",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_SUMMARY_TEXT@current version git_revision:2 in common tags@@@"
]
},
diff --git a/recipe_modules/cipd_roll/tests/full.expected/multiple.json b/recipe_modules/cipd_roll/tests/full.expected/multiple.json
index b16cc54..d00abdd 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/multiple.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/multiple.json
@@ -282,6 +282,131 @@
},
{
"cmd": [],
+ "name": "foo.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "foo.checking against old version.foo/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "foo/linux-amd64",
+ "-version",
+ "git_revision:foo123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "foo.checking against old version.foo/linux-amd64.cipd describe foo/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:foo\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"foo/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "foo.checking against old version.foo/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "foo/windows-amd64",
+ "-version",
+ "git_revision:foo123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "foo.checking against old version.foo/windows-amd64.cipd describe foo/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:foo\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"foo/windows-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "foo.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
@@ -746,6 +871,131 @@
},
{
"cmd": [],
+ "name": "bar.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "bar.checking against old version.bar/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "bar/linux-amd64",
+ "-version",
+ "git_revision:bar123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "bar.checking against old version.bar/linux-amd64.cipd describe bar/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:bar\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"bar/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "bar.checking against old version.bar/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "bar/windows-amd64",
+ "-version",
+ "git_revision:bar123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "bar.checking against old version.bar/windows-amd64.cipd describe bar/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:bar\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"bar/windows-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "bar.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/tests/full.expected/multiple_common_tags.json b/recipe_modules/cipd_roll/tests/full.expected/multiple_common_tags.json
index 2e4650b..abfab35 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/multiple_common_tags.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/multiple_common_tags.json
@@ -271,9 +271,16 @@
},
{
"cmd": [],
- "name": "host_tools.already up-to-date",
+ "name": "host_tools.checking against old version",
"~followup_annotations": [
- "@@@STEP_NEST_LEVEL@1@@@",
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.already up-to-date",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@",
"@@@STEP_SUMMARY_TEXT@current version git_revision:2 in common tags@@@"
]
},
diff --git a/recipe_modules/cipd_roll/tests/full.expected/no_common_tags_but_relaxing_ref_mismatch_helps.json b/recipe_modules/cipd_roll/tests/full.expected/no_common_tags_but_relaxing_ref_mismatch_helps.json
index 7159a20..b7b2f7c 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/no_common_tags_but_relaxing_ref_mismatch_helps.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/no_common_tags_but_relaxing_ref_mismatch_helps.json
@@ -300,6 +300,131 @@
},
{
"cmd": [],
+ "name": "host_tools.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/linux-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64.cipd describe pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/windows-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64.cipd describe pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/windows-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "host_tools.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/tests/full.expected/no_curlies_in_spec.json b/recipe_modules/cipd_roll/tests/full.expected/no_curlies_in_spec.json
index 75c3456..f59c49b 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/no_curlies_in_spec.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/no_curlies_in_spec.json
@@ -271,6 +271,131 @@
},
{
"cmd": [],
+ "name": "host_tools.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/linux-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64.cipd describe pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/windows-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64.cipd describe pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/windows-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "host_tools.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/tests/full.expected/platform-independent.json b/recipe_modules/cipd_roll/tests/full.expected/platform-independent.json
index df070a7..77631a4 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/platform-independent.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/platform-independent.json
@@ -167,6 +167,72 @@
},
{
"cmd": [],
+ "name": "baz.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "baz.checking against old version.foo/bar/baz",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "foo/bar/baz",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "baz.checking against old version.foo/bar/baz.cipd describe foo/bar/baz",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"foo/bar/baz\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "baz.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/tests/full.expected/success.json b/recipe_modules/cipd_roll/tests/full.expected/success.json
index cccf6de..ec87b28 100644
--- a/recipe_modules/cipd_roll/tests/full.expected/success.json
+++ b/recipe_modules/cipd_roll/tests/full.expected/success.json
@@ -271,6 +271,131 @@
},
{
"cmd": [],
+ "name": "host_tools.checking against old version",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@1@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/linux-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/linux-amd64.cipd describe pigweed/host_tools/linux-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/linux-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@2@@@"
+ ]
+ },
+ {
+ "cmd": [
+ "cipd",
+ "describe",
+ "pigweed/host_tools/windows-amd64",
+ "-version",
+ "git_revision:123",
+ "-json-output",
+ "/path/to/tmp/json"
+ ],
+ "infra_step": true,
+ "name": "host_tools.checking against old version.pigweed/host_tools/windows-amd64.cipd describe pigweed/host_tools/windows-amd64",
+ "~followup_annotations": [
+ "@@@STEP_NEST_LEVEL@3@@@",
+ "@@@STEP_LOG_LINE@json.output@{@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"pin\": {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-git_revision:123\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"package\": \"pigweed/host_tools/windows-amd64\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"refs\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-latest----------\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"modified_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"ref\": \"latest\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ],@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tags\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"buildbot_build:some.waterfall/builder/1234\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_repository:https://chromium.googlesource.com/some/repo\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ },@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_by\": \"user:44-blablbla@developer.gserviceaccount.com\",@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"registered_ts\": 1446574210,@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"tag\": \"git_revision:397a2597cdc237f3026e6143b683be4b9ab60540\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@ ]@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@}@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [],
"name": "host_tools.check package uploader",
"~followup_annotations": [
"@@@STEP_NEST_LEVEL@1@@@"
diff --git a/recipe_modules/cipd_roll/tests/full.py b/recipe_modules/cipd_roll/tests/full.py
index 39c3c4b..60b7121 100644
--- a/recipe_modules/cipd_roll/tests/full.py
+++ b/recipe_modules/cipd_roll/tests/full.py
@@ -18,15 +18,12 @@
import collections
import dataclasses
import re
-from typing import TYPE_CHECKING
+from typing import Generator, List
from PB.recipe_engine import result as result_pb
from PB.go.chromium.org.luci.buildbucket.proto import common as common_pb
from PB.recipe_modules.pigweed.cipd_roll.tests.full import InputProperties
-
-if TYPE_CHECKING: # pragma: no cover
- from typing import Generator, List
- from recipe_engine import recipe_test_api
+from recipe_engine import post_process, recipe_test_api
DEPS = [
'fuchsia/roll_commit_message',
@@ -93,6 +90,28 @@
)
yield api.test(
+ 'no-backwards',
+ properties([api.cipd_roll.package_props(spec=spec)]),
+ api.cipd_roll.read_file_step_data(
+ name,
+ 'pigweed.json',
+ api.cipd_roll.package(
+ spec,
+ 'git_revision:123',
+ platforms=['linux-amd64', 'windows-amd64'],
+ ),
+ ),
+ api.cipd_roll.describe(name, paths[1], tstamp=1111111111),
+ api.cipd_roll.describe_current(name, paths[1], tstamp=1111111112),
+ api.post_process(
+ post_process.MustRunRE,
+ r"^.*\.checking against old version\..*\.new package is older "
+ r"than current package$",
+ ),
+ api.post_process(post_process.DropExpectation),
+ )
+
+ yield api.test(
'rc',
properties([api.cipd_roll.package_props(spec=spec, tag='version')]),
api.cipd_roll.read_file_step_data(