[gnome-ostree] smoketest: Tag repo with /smoketested/ after completion
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-ostree] smoketest: Tag repo with /smoketested/ after completion
- Date: Sun, 21 Apr 2013 13:01:37 +0000 (UTC)
commit 60feeee85c55b74da61e2ff92c256dc25aa9a0bc
Author: Colin Walters <walters verbum org>
Date: Sat Apr 20 20:45:26 2013 -0400
smoketest: Tag repo with /smoketested/ after completion
This is the treeset that most people should follow, unless one wants
to debug why a smoketest is failing.
src/js/tasks/task-builddisks.js | 3 +++
src/js/tasks/task-smoketest.js | 22 ++++++++++++++++++++++
2 files changed, 25 insertions(+)
---
diff --git a/src/js/tasks/task-builddisks.js b/src/js/tasks/task-builddisks.js
index db50bfd..a992b6c 100644
--- a/src/js/tasks/task-builddisks.js
+++ b/src/js/tasks/task-builddisks.js
@@ -73,6 +73,9 @@ const TaskBuildDisks = new Lang.Class({
let workImageDir = subworkdir.get_child('images');
GSystem.file_ensure_directory(workImageDir, true, cancellable);
+ let destPath = workImageDir.get_child('build-' + buildVersion + '.json');
+ GSystem.file_linkcopy(latestPath, destPath, Gio.FileCopyFlags.ALL_METADATA, cancellable);
+
let targets = buildData['targets'];
let osname = buildData['snapshot']['osname'];
diff --git a/src/js/tasks/task-smoketest.js b/src/js/tasks/task-smoketest.js
index 4e9e82a..b65c43d 100644
--- a/src/js/tasks/task-smoketest.js
+++ b/src/js/tasks/task-smoketest.js
@@ -29,6 +29,7 @@ const ProcUtil = imports.procutil;
const Task = imports.task;
const LibQA = imports.libqa;
const JSUtil = imports.jsutil;
+const JSONUtil = imports.jsonutil;
const TIMEOUT_SECONDS = 10 * 60;
const COMPLETE_IDLE_WAIT_SECONDS = 10;
@@ -325,8 +326,13 @@ const TaskSmoketest = new Lang.Class({
let e = currentImages.enumerate_children('standard::*', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
cancellable);
let info;
+ let buildJson;
while ((info = e.next_file(cancellable)) != null) {
let name = info.get_name();
+ if (name.indexOf('build-') == 0 && JSUtil.stringEndswith(name, '.json')) {
+ buildJson = e.get_child(info);
+ continue;
+ }
if (!JSUtil.stringEndswith(name, '.qcow2'))
continue;
let workdirName = 'work-' + name.replace(/\.qcow2$/, '');
@@ -335,5 +341,21 @@ const TaskSmoketest = new Lang.Class({
let smokeTest = new SmoketestOne();
smokeTest.execute(subworkdir, currentImages.get_child(name), cancellable);
}
+ if (buildJson != null) {
+ let buildData = JSONUtil.loadJson(buildJson, cancellable);
+ let refData = '';
+ let snapshot = buildData['snapshot'];
+ for (let targetName in buildData['targets']) {
+ let targetRev = buildData['targets'][targetName];
+ let lastSlash = targetName.lastIndexOf('/');
+ let smoketestedRef = snapshot['osname'] + '/smoketested' + targetName.substr(lastSlash);
+ refData += smoketestedRef + ' ' + targetRev + '\n';
+ }
+ ProcUtil.runProcWithInputSyncGetLines(['ostree', '--repo=' + this.repo.get_path(),
+ 'write-refs'], cancellable, refData);
+ print("Wrote refs: " + refData);
+ } else {
+ print("No build json found, not tagging");
+ }
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]