Improve how we track build plans
This commit is contained in:
parent
0a2c323000
commit
2ae606ace5
2 changed files with 31 additions and 29 deletions
|
@ -577,7 +577,7 @@ inherits = "ss17"
|
|||
|
||||
[buildPlans.iosevka-ss18]
|
||||
family = "Iosevka SS18"
|
||||
desc = "Recursive Mono Style"
|
||||
desc = "Input Mono Style"
|
||||
snapshotFamily = 'iosevka'
|
||||
snapshotFeature = '"ss18" on'
|
||||
no-cv-ss = true
|
||||
|
|
58
verdafile.js
58
verdafile.js
|
@ -50,14 +50,9 @@ build.setSelfTracking();
|
|||
////// Oracles //////
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
const PackageJsonData = computed(`env::package-json-data`, async target => {
|
||||
const [pj] = await target.need(sfu`package.json`);
|
||||
const package_json = JSON.parse(await fs.promises.readFile(pj.full, "utf-8"));
|
||||
return package_json;
|
||||
});
|
||||
|
||||
const Version = computed(`env::version`, async target => {
|
||||
const [pj] = await target.need(PackageJsonData);
|
||||
const [pjf] = await target.need(sfu`package.json`);
|
||||
const pj = JSON.parse(await fs.promises.readFile(pjf.full, "utf-8"));
|
||||
return pj.version;
|
||||
});
|
||||
|
||||
|
@ -69,6 +64,17 @@ const CheckTtfAutoHintExists = oracle(`oracle:check-ttfautohint-exists`, async t
|
|||
}
|
||||
});
|
||||
|
||||
const Dependencies = computed("env::dependencies", async target => {
|
||||
const [pjf] = await target.need(sfu`package.json`);
|
||||
const pj = JSON.parse(await fs.promises.readFile(pjf.full, "utf-8"));
|
||||
let subGoals = [];
|
||||
for (const pkgName in pj.dependencies) {
|
||||
subGoals.push(InstalledVersion(pkgName, pj.dependencies[pkgName]));
|
||||
}
|
||||
const [actual] = await target.need(subGoals);
|
||||
return actual;
|
||||
});
|
||||
|
||||
const InstalledVersion = computed.make(
|
||||
(pkg, required) => `env::installed-version::${pkg}::${required}`,
|
||||
async (target, pkg, required) => {
|
||||
|
@ -84,22 +90,12 @@ const InstalledVersion = computed.make(
|
|||
}
|
||||
);
|
||||
|
||||
const Dependencies = computed("env::dependencies", async target => {
|
||||
const [pj] = await target.need(PackageJsonData);
|
||||
let subGoals = [];
|
||||
for (const pkgName in pj.dependencies) {
|
||||
subGoals.push(InstalledVersion(pkgName, pj.dependencies[pkgName]));
|
||||
}
|
||||
const [actual] = await target.need(subGoals);
|
||||
return actual;
|
||||
});
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
////// Plans //////
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
const RawPlans = computed(`metadata:raw-plans`, async target => {
|
||||
await target.need(sfu(BUILD_PLANS), ofu(PRIVATE_BUILD_PLANS));
|
||||
await target.need(sfu(BUILD_PLANS), ofu(PRIVATE_BUILD_PLANS), Version);
|
||||
|
||||
const bp = await tryParseToml(BUILD_PLANS);
|
||||
bp.buildOptions = bp.buildOptions || {};
|
||||
|
@ -778,22 +774,28 @@ phony(`clean`, async () => {
|
|||
build.deleteJournal();
|
||||
});
|
||||
phony(`release`, async target => {
|
||||
const [version, collectPlans] = await target.need(Version, CollectPlans);
|
||||
const [collectPlans] = await target.need(CollectPlans);
|
||||
let goals = [];
|
||||
for (const [cgr, subGroups] of Object.entries(collectPlans.groupDecomposition)) {
|
||||
for (const cgr of Object.keys(collectPlans.groupDecomposition)) {
|
||||
if (!collectPlans.groupInRelease[cgr]) continue;
|
||||
goals.push(TtcArchiveFile(cgr, version), SuperTtcArchiveFile(cgr, version));
|
||||
for (const gr of subGroups) {
|
||||
goals.push(
|
||||
GroupTtfArchiveFile(gr, version),
|
||||
GroupTtfUnhintedArchiveFile(gr, version),
|
||||
GroupWebArchiveFile(gr, version)
|
||||
);
|
||||
}
|
||||
goals.push(ReleaseGroup(cgr));
|
||||
}
|
||||
await target.need(goals);
|
||||
await target.need(SampleImages, Pages, ReleaseNotes, ChangeLog);
|
||||
});
|
||||
const ReleaseGroup = phony.group("release-group", async (target, cgr) => {
|
||||
const [version, collectPlans] = await target.need(Version, CollectPlans);
|
||||
const subGroups = collectPlans.GroupContents[cgr];
|
||||
|
||||
let goals = [TtcArchiveFile(cgr, version), SuperTtcArchiveFile(cgr, version)];
|
||||
for (const gr of subGroups) {
|
||||
goals.push(GroupTtfArchiveFile(gr, version));
|
||||
goals.push(GroupTtfUnhintedArchiveFile(gr, version));
|
||||
goals.push(GroupWebArchiveFile(gr, version));
|
||||
}
|
||||
|
||||
await target.need(goals);
|
||||
});
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
////// Script Building //////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue