Use a module to get build date
Change-Id: I9655fa9145142847f39c2d75eaaf031a9b21e11b
diff --git a/recipes/jiri.expected/ci.json b/recipes/jiri.expected/ci.json
index 97c5d1f..d4a01db 100644
--- a/recipes/jiri.expected/ci.json
+++ b/recipes/jiri.expected/ci.json
@@ -95,26 +95,6 @@
]
},
{
- "cmd": [
- "git",
- "show",
- "HEAD",
- "--format=%H",
- "-s"
- ],
- "cwd": "[START_DIR]/go/src/fuchsia.googlesource.com/jiri",
- "name": "git show",
- "stdout": "/path/to/tmp/"
- },
- {
- "cmd": [
- "date",
- "--rfc-3339=seconds"
- ],
- "name": "date",
- "stdout": "/path/to/tmp/"
- },
- {
"cmd": [],
"name": "ensure_packages"
},
@@ -173,7 +153,7 @@
"cmd": [
"[START_DIR]/cipd/bin/cmake",
"-GNinja",
- "-DCMAKE_BUILD_PROGRAM=[START_DIR]/cipd/ninja",
+ "-DCMAKE_MAKE_PROGRAM=[START_DIR]/cipd/ninja",
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DCMAKE_C_FLAGS=-fPIC",
"-DTHREADSAFE=ON",
@@ -193,10 +173,37 @@
},
{
"cmd": [
+ "[START_DIR]/cipd/jiri/jiri",
+ "project",
+ "info",
+ "-json-output",
+ "/path/to/tmp/json",
+ "jiri"
+ ],
+ "name": "jiri project info",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"branches\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"(HEAD detached at c22471f)\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"master\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"current_branch\": \"\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"name\": \"jiri\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"path\": \"/path/to/repo\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"remote\": \"https://fuchsia.googlesource.com/repo\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
"[START_DIR]/cipd/go/bin/go",
"build jiri",
"-ldflags",
- "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=deadbeef\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=2016-10-11 14:40:25-07:00\"",
+ "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=c22471f4e3f842ae18dd9adec82ed9eb78ed1127\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=2012-05-14T12:53:21.500000\"",
"-a",
"fuchsia.googlesource.com/jiri/cmd/jiri"
],
@@ -220,7 +227,9 @@
},
{
"name": "$result",
- "recipe_result": null,
+ "recipe_result": {
+ "got_revision": "c22471f4e3f842ae18dd9adec82ed9eb78ed1127"
+ },
"status_code": 0
}
]
\ No newline at end of file
diff --git a/recipes/jiri.expected/cq_try.json b/recipes/jiri.expected/cq_try.json
index c0777c8..7834781 100644
--- a/recipes/jiri.expected/cq_try.json
+++ b/recipes/jiri.expected/cq_try.json
@@ -105,26 +105,6 @@
]
},
{
- "cmd": [
- "git",
- "show",
- "HEAD",
- "--format=%H",
- "-s"
- ],
- "cwd": "[START_DIR]/go/src/fuchsia.googlesource.com/jiri",
- "name": "git show",
- "stdout": "/path/to/tmp/"
- },
- {
- "cmd": [
- "date",
- "--rfc-3339=seconds"
- ],
- "name": "date",
- "stdout": "/path/to/tmp/"
- },
- {
"cmd": [],
"name": "ensure_packages"
},
@@ -183,7 +163,7 @@
"cmd": [
"[START_DIR]/cipd/bin/cmake",
"-GNinja",
- "-DCMAKE_BUILD_PROGRAM=[START_DIR]/cipd/ninja",
+ "-DCMAKE_MAKE_PROGRAM=[START_DIR]/cipd/ninja",
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DCMAKE_C_FLAGS=-fPIC",
"-DTHREADSAFE=ON",
@@ -203,10 +183,37 @@
},
{
"cmd": [
+ "[START_DIR]/cipd/jiri/jiri",
+ "project",
+ "info",
+ "-json-output",
+ "/path/to/tmp/json",
+ "jiri"
+ ],
+ "name": "jiri project info",
+ "~followup_annotations": [
+ "@@@STEP_LOG_LINE@json.output@[@@@",
+ "@@@STEP_LOG_LINE@json.output@ {@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"branches\": [@@@",
+ "@@@STEP_LOG_LINE@json.output@ \"(HEAD detached at c22471f)\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"master\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ ], @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"current_branch\": \"\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"name\": \"jiri\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"path\": \"/path/to/repo\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"remote\": \"https://fuchsia.googlesource.com/repo\", @@@",
+ "@@@STEP_LOG_LINE@json.output@ \"revision\": \"c22471f4e3f842ae18dd9adec82ed9eb78ed1127\"@@@",
+ "@@@STEP_LOG_LINE@json.output@ }@@@",
+ "@@@STEP_LOG_LINE@json.output@]@@@",
+ "@@@STEP_LOG_END@json.output@@@"
+ ]
+ },
+ {
+ "cmd": [
"[START_DIR]/cipd/go/bin/go",
"build jiri",
"-ldflags",
- "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=deadbeef\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=2016-10-11 14:40:25-07:00\"",
+ "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=c22471f4e3f842ae18dd9adec82ed9eb78ed1127\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=2012-05-14T12:53:21.500000\"",
"-a",
"fuchsia.googlesource.com/jiri/cmd/jiri"
],
@@ -230,7 +237,9 @@
},
{
"name": "$result",
- "recipe_result": null,
+ "recipe_result": {
+ "got_revision": "c22471f4e3f842ae18dd9adec82ed9eb78ed1127"
+ },
"status_code": 0
}
]
\ No newline at end of file
diff --git a/recipes/jiri.py b/recipes/jiri.py
index 851f88a..968460d 100644
--- a/recipes/jiri.py
+++ b/recipes/jiri.py
@@ -4,6 +4,7 @@
"""Recipe for building Jiri."""
+from recipe_engine.config import ReturnSchema, Single
from recipe_engine.recipe_api import Property
from recipe_engine import config
@@ -18,6 +19,7 @@
'recipe_engine/raw_io',
'recipe_engine/shutil',
'recipe_engine/step',
+ 'recipe_engine/time',
]
PROPERTIES = {
@@ -33,6 +35,10 @@
'target': Property(kind=str, help='Target to build'),
}
+RETURN_SCHEMA = ReturnSchema(
+ got_revision=Single(str)
+)
+
def RunSteps(api, category, patch_gerrit_url, patch_project, patch_ref,
patch_storage, patch_repository_url, manifest, remote, target):
@@ -53,17 +59,6 @@
git2go_dir = jiri_dir.join('vendor', 'github.com', 'libgit2', 'git2go')
libgit2_dir = git2go_dir.join('vendor', 'libgit2')
- with api.step.context({'cwd': jiri_dir}):
- git_commit = api.git.get_hash()
- result = api.step('date', ['date', '--rfc-3339=seconds'],
- stdout=api.raw_io.output(),
- step_test_data=lambda:
- api.raw_io.test_api.stream_output('2016-10-11 14:40:25-07:00'))
- build_time = result.stdout.strip()
-
- ldflags = "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=%s\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=%s\"" % (git_commit, build_time)
- gopath = api.path['start_dir'].join('go')
-
with api.step.nest('ensure_packages'):
with api.step.context({'infra_step': True}):
cipd_dir = api.path['start_dir'].join('cipd')
@@ -78,7 +73,7 @@
api.step('configure libgit2', [
cipd_dir.join('bin', 'cmake'),
'-GNinja',
- '-DCMAKE_BUILD_PROGRAM=%s' % cipd_dir.join('ninja'),
+ '-DCMAKE_MAKE_PROGRAM=%s' % cipd_dir.join('ninja'),
'-DCMAKE_BUILD_TYPE=RelWithDebInfo',
'-DCMAKE_C_FLAGS=-fPIC',
'-DTHREADSAFE=ON',
@@ -88,6 +83,12 @@
])
api.step('build libgit2', [cipd_dir.join('ninja')])
+ revision = api.jiri.project('jiri').json.output[0]['revision']
+ build_time = api.time.utcnow().isoformat()
+
+ ldflags = "-X \"fuchsia.googlesource.com/jiri/version.GitCommit=%s\" -X \"fuchsia.googlesource.com/jiri/version.BuildTime=%s\"" % (revision, build_time)
+ gopath = api.path['start_dir'].join('go')
+
with api.step.context({'env': {'GOPATH': gopath}}):
api.go('build jiri', '-ldflags', ldflags, '-a',
'fuchsia.googlesource.com/jiri/cmd/jiri')
@@ -95,6 +96,8 @@
with api.step.context({'env': {'GOPATH': gopath}}):
api.go('test jiri', 'fuchsia.googlesource.com/jiri/cmd/jiri')
+ return RETURN_SCHEMA.new(got_revision=revision)
+
def GenTests(api):
yield api.test('ci') + api.properties(