2023-05-09 13:25:56 +00:00
|
|
|
import { exec } from './lib/exec'
|
2023-04-25 11:01:25 +00:00
|
|
|
import { getLatestVersion, publish, setAllVersions } from './lib/publishing'
|
|
|
|
|
2023-05-09 13:25:56 +00:00
|
|
|
async function main() {
|
|
|
|
const sha = (await exec('git', ['rev-parse', 'HEAD'])).trim().slice(0, 12)
|
2023-04-25 11:01:25 +00:00
|
|
|
|
2024-03-04 09:39:19 +00:00
|
|
|
async function setCanaryVersions() {
|
2024-02-29 16:28:11 +00:00
|
|
|
const latestVersion = await getLatestVersion()
|
2023-04-25 11:01:25 +00:00
|
|
|
|
2023-05-09 13:25:56 +00:00
|
|
|
const nextVersion = latestVersion.prerelease.length
|
|
|
|
? // if the package is in prerelease mode, we want to release a canary for the current version rather than bumping
|
2024-02-07 16:02:22 +00:00
|
|
|
latestVersion
|
2024-03-04 09:39:19 +00:00
|
|
|
: latestVersion?.inc('minor')
|
2023-05-09 13:25:56 +00:00
|
|
|
const versionString = `${nextVersion.major}.${nextVersion.minor}.${nextVersion.patch}-canary.${sha}`
|
2023-04-25 11:01:25 +00:00
|
|
|
|
2024-02-29 17:38:19 +00:00
|
|
|
await setAllVersions(versionString)
|
2023-05-09 13:25:56 +00:00
|
|
|
}
|
2023-04-25 11:01:25 +00:00
|
|
|
|
|
|
|
// module was called directly
|
|
|
|
|
2024-03-04 09:39:19 +00:00
|
|
|
setCanaryVersions()
|
|
|
|
publish('canary')
|
2023-04-25 11:01:25 +00:00
|
|
|
}
|
2023-05-09 13:25:56 +00:00
|
|
|
|
|
|
|
main()
|