mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-11-21 12:18:32 +00:00
* fix: publish script * fix: publish script with tests * dev: print env * fix: guess reason * fix: guess reason
51 lines
1.9 KiB
JavaScript
51 lines
1.9 KiB
JavaScript
import assert from "assert";
|
|
|
|
const startsWith = (str, prefix) => str.startsWith(prefix);
|
|
const contains = (str, substr) => str.includes(substr);
|
|
const endsWith = (str, suffix) => str.endsWith(suffix);
|
|
|
|
// prettier-ignore
|
|
const releaseCond = (github, matrix) =>
|
|
(startsWith(github.ref, 'refs/tags/') && (!contains(github.ref, 'rc') && (endsWith(github.ref, '0') || endsWith(github.ref, '2') || endsWith(github.ref, '4') || endsWith(github.ref, '6') || endsWith(github.ref, '8'))));
|
|
|
|
// prettier-ignore
|
|
const nightlyCond = (github, matrix) =>
|
|
((startsWith(github.ref, 'refs/tags/') && !((!contains(github.ref, 'rc') && (endsWith(github.ref, '0') || endsWith(github.ref, '2') || endsWith(github.ref, '4') || endsWith(github.ref, '6') || endsWith(github.ref, '8'))))) || (!startsWith(github.ref, 'refs/tags/') && matrix.regular_build == 'true'));
|
|
|
|
for (const c of ["false", "true"]) {
|
|
assert(
|
|
releaseCond({ ref: "refs/tags/v0.11.20" }, { regular_build: c }),
|
|
`v0.11.20 (rb: ${c}) is a stable release`
|
|
);
|
|
assert(
|
|
!releaseCond({ ref: "refs/tags/v0.11.21" }, { regular_build: c }),
|
|
`v0.11.21 (rb: ${c}) is a nightly release`
|
|
);
|
|
assert(
|
|
!nightlyCond({ ref: "refs/tags/v0.11.20" }, { regular_build: c }),
|
|
`v0.11.20 (rb: ${c}) is a stable release`
|
|
);
|
|
assert(
|
|
nightlyCond({ ref: "refs/tags/v0.11.21" }, { regular_build: c }),
|
|
`v0.11.21 (rb: ${c}) is a nightly release`
|
|
);
|
|
}
|
|
|
|
for (const tag of ["dev", "dev0", "devrc0", "dev1", "devrc1", "devrc"]) {
|
|
assert(
|
|
!releaseCond({ ref: `refs/head/${tag}` }, { regular_build: "true" }),
|
|
`${tag} is a prerelease`
|
|
);
|
|
assert(
|
|
nightlyCond({ ref: `refs/head/${tag}` }, { regular_build: "true" }),
|
|
`${tag} is a prerelease`
|
|
);
|
|
assert(
|
|
!releaseCond({ ref: `refs/head/${tag}` }, { regular_build: "false" }),
|
|
`${tag} is skipped in prerelease`
|
|
);
|
|
assert(
|
|
!nightlyCond({ ref: `refs/head/${tag}` }, { regular_build: "false" }),
|
|
`${tag} is skipped in prerelease`
|
|
);
|
|
}
|