mirror of
https://github.com/changesets/action
synced 2026-10-26 16:39:56 +08:00
1 line
1.4 KiB
JavaScript
1 line
1.4 KiB
JavaScript
import{A as e,j as t,m as n,n as r,y as i}from"./utils-CAuP846_.js";import{t as a}from"./readChangesetState-D-vw_tSH.js";import o from"node:fs/promises";import s from"node:path";import c from"node:os";try{await l()}catch(t){e(t.message)}async function l(){let e=process.cwd();await n(e);let r=await u(e);if(t(`mode`,r.mode),r.mode===`publish`){let e=await i.uploadArtifact(s.basename(r.publishPlanPath,`.json`),[r.publishPlanPath],s.dirname(r.publishPlanPath),{skipArchive:!0,retentionDays:30});if(e.id===void 0)throw Error(`Publish plan artifact upload did not return an artifact id`);t(`publish-plan-artifact-id`,String(e.id))}}async function u(e){let{changesets:t}=await a(e);if(t.length>0)return t.some(e=>e.releases.length>0)?{mode:`version`}:{mode:`none`};let n=s.join(process.env.RUNNER_TEMP??await o.realpath(c.tmpdir()),`changeset-publish-plan-${Date.now()}`,`publish-plan.json`);return await r([`publish-plan`,`--output`,n],{cwd:e,env:process.env}),(await d(n)).length===0?{mode:`none`}:{mode:`publish`,publishPlanPath:n}}async function d(e){let t;try{t=await o.readFile(e,`utf8`)}catch(t){throw Error(`Failed to read publish plan at ${e}`,{cause:t})}let n;try{n=JSON.parse(t)}catch(t){throw Error(`Failed to parse publish plan at ${e}`,{cause:t})}if(typeof n!=`object`||!n||!(`version`in n)||typeof n.version!=`number`||!(`plan`in n)||!Array.isArray(n.plan))throw Error(`Invalid publish plan at ${e}: expected { version: number; plan: unknown[] }`);return n.plan}export{}; |