Some embarrassing mistakes
This commit is contained in:
parent
416d91395f
commit
320b17777c
|
@ -637,6 +637,13 @@ async function writeLog(lang, type, result, log) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getImageHash(tag) {
|
||||||
|
const output = (await run(["docker", "inspect", `riju:${tag}`], console.error, {
|
||||||
|
suppressOutput: true,
|
||||||
|
})).output;
|
||||||
|
return JSON.parse(output)[0].Config.Labels["riju.image-hash"];
|
||||||
|
}
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
if (process.env.HOSTNAME !== "runtime") {
|
if (process.env.HOSTNAME !== "runtime") {
|
||||||
throw new Error("tests should be run in runtime container");
|
throw new Error("tests should be run in runtime container");
|
||||||
|
@ -656,13 +663,11 @@ async function main() {
|
||||||
const langHashes = Object.fromEntries(
|
const langHashes = Object.fromEntries(
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
_.uniq(tests.map(({ lang }) => lang)).map(async (lang) => {
|
_.uniq(tests.map(({ lang }) => lang)).map(async (lang) => {
|
||||||
const output = (await run(["docker", "inspect", `riju:lang-${lang}`], console.error, {
|
return [lang, await getImageHash(`lang-${lang}`)];
|
||||||
suppressOutput: true,
|
|
||||||
})).output;
|
|
||||||
return [lang, JSON.parse(output)[0].Config.Labels["riju.image-hash"]];
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
const runtimeHash = await getImageHash("runtime");
|
||||||
console.error(`Running ${tests.length} test${tests.length !== 1 ? "s" : ""}`);
|
console.error(`Running ${tests.length} test${tests.length !== 1 ? "s" : ""}`);
|
||||||
const lintSeen = new Set();
|
const lintSeen = new Set();
|
||||||
let lintPassed = new Set();
|
let lintPassed = new Set();
|
||||||
|
@ -772,7 +777,7 @@ async function main() {
|
||||||
await fs.mkdir(`build/test-hashes/lang`, { recursive: true });
|
await fs.mkdir(`build/test-hashes/lang`, { recursive: true });
|
||||||
await fs.writeFile(
|
await fs.writeFile(
|
||||||
`build/test-hashes/lang/${lang}`,
|
`build/test-hashes/lang/${lang}`,
|
||||||
await getTestHash(lang, langHashes[lang]),
|
await getTestHash(lang, runtimeHash, langHashes[lang]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
process.exit(failed.size > 0 ? 1 : 0);
|
process.exit(failed.size > 0 ? 1 : 0);
|
||||||
|
|
|
@ -66,9 +66,6 @@ async function getTestRunnerHash() {
|
||||||
.digest("hex")
|
.digest("hex")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
hashes.push((await util.promisify(child_process.exec)(
|
|
||||||
`docker inspect riju:runtime -f '{{ index .Config.Labels "riju.image-hash" }}'`,
|
|
||||||
)).stdout.trim());
|
|
||||||
return crypto.createHash("sha1").update(hashes.join(",")).digest("hex");
|
return crypto.createHash("sha1").update(hashes.join(",")).digest("hex");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,11 +78,11 @@ async function getTestConfigHash(lang) {
|
||||||
return crypto.createHash("sha1").update(JSON.stringify(config)).digest("hex");
|
return crypto.createHash("sha1").update(JSON.stringify(config)).digest("hex");
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getTestHash(lang, imageHash) {
|
export async function getTestHash(lang, runtimeImageHash, langImageHash) {
|
||||||
return crypto
|
return crypto
|
||||||
.createHash("sha1")
|
.createHash("sha1")
|
||||||
.update(
|
.update(
|
||||||
`${await testRunnerHash},${await getTestConfigHash(lang)},${imageHash}`
|
`${await testRunnerHash},${await getTestConfigHash(lang)},${runtimeImageHash},${langImageHash}`
|
||||||
)
|
)
|
||||||
.digest("hex");
|
.digest("hex");
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ void session(char *uuid, char *lang, char *imageHash)
|
||||||
"--memory", "100m",
|
"--memory", "100m",
|
||||||
"--memory-swap", "900m",
|
"--memory-swap", "900m",
|
||||||
image, "bash", "-c",
|
image, "bash", "-c",
|
||||||
"cat /var/run/riju/sentinel/fifo | while read -t2; do :; done",
|
"cat /var/run/riju/sentinel/fifo | ( while read -t2; do :; done; pkill -g0 )",
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
execvp(argv[0], argv);
|
execvp(argv[0], argv);
|
||||||
|
|
|
@ -228,7 +228,11 @@ async function getLanguageTestArtifact({ lang }) {
|
||||||
return s3TestHashes[lang] || null;
|
return s3TestHashes[lang] || null;
|
||||||
},
|
},
|
||||||
getDesiredHash: async (dependencyHashes) => {
|
getDesiredHash: async (dependencyHashes) => {
|
||||||
return await getTestHash(lang, dependencyHashes[`image:lang-${lang}`]);
|
return await getTestHash(
|
||||||
|
lang,
|
||||||
|
dependencyHashes[`image:runtime`],
|
||||||
|
dependencyHashes[`image:lang-${lang}`],
|
||||||
|
);
|
||||||
},
|
},
|
||||||
buildLocally: async () => {
|
buildLocally: async () => {
|
||||||
await runCommand(`make shell I=runtime CMD="make test L=${lang}"`);
|
await runCommand(`make shell I=runtime CMD="make test L=${lang}"`);
|
||||||
|
@ -531,6 +535,9 @@ async function executeDepGraph({
|
||||||
const seen = new Set();
|
const seen = new Set();
|
||||||
for (const target of priorityTargets) {
|
for (const target of priorityTargets) {
|
||||||
for (const dep of artifacts[target].dependencies) {
|
for (const dep of artifacts[target].dependencies) {
|
||||||
|
if (seen.has(dep)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (artifacts[target].publishTarget) {
|
if (artifacts[target].publishTarget) {
|
||||||
if (statuses[dep] === "publishToRegistry") {
|
if (statuses[dep] === "publishToRegistry") {
|
||||||
plan.push({
|
plan.push({
|
||||||
|
@ -546,9 +553,6 @@ async function executeDepGraph({
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (seen.has(dep)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
seen.add(dep);
|
seen.add(dep);
|
||||||
}
|
}
|
||||||
if (statuses[target]) {
|
if (statuses[target]) {
|
||||||
|
|
Loading…
Reference in New Issue