mirror of
https://github.com/changesets/action
synced 2026-10-26 16:39:56 +08:00
Add select-mode, version, pack and publish sub-actions (#656)
* Add select-mode, version, and publish sub-actions * Rename * No github-token needed for select-mode for now * extend select-mode with publish-plan check and upload * Rename base-branch to pr-base-branch * add `pack` subaction * `--from-pack` support in the publish subaction * rename CLI arg * update rolldown config * rename pack dir input/output * tweak retendion days --------- Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
This commit is contained in:
co-authored by
Mateusz Burzyński
parent
5649ff41b8
commit
a12d90de83
@@ -0,0 +1,67 @@
|
||||
import fs from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import * as core from "@actions/core";
|
||||
import { Git } from "../git.ts";
|
||||
import { setupOctokit } from "../octokit.ts";
|
||||
import { runPublish } from "../run.ts";
|
||||
import { downloadArtifact } from "../utils.ts";
|
||||
|
||||
try {
|
||||
await main();
|
||||
} catch (err) {
|
||||
core.setFailed((err as Error).message);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const githubToken = core.getInput("github-token", { required: true });
|
||||
const script = core.getInput("script");
|
||||
const packDirArtifactId = core.getInput("pack-dir-artifact-id");
|
||||
const createGithubReleases = core.getBooleanInput("create-github-releases");
|
||||
|
||||
// If the user needs to change the cwd, set `working-directory` in the step instead
|
||||
const cwd = process.cwd();
|
||||
|
||||
const octokit = setupOctokit(githubToken);
|
||||
// NOTE: Always pass octokit here as publish does not need a commit-mode
|
||||
const git = new Git({ octokit, cwd });
|
||||
|
||||
const fromPackDir = packDirArtifactId
|
||||
? await downloadArtifact(
|
||||
process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())),
|
||||
Number(packDirArtifactId),
|
||||
"changeset-pack",
|
||||
)
|
||||
: undefined;
|
||||
|
||||
const result = await runPublish({
|
||||
script,
|
||||
githubToken,
|
||||
git,
|
||||
octokit,
|
||||
createGithubReleases,
|
||||
cwd,
|
||||
fromPackDir,
|
||||
});
|
||||
|
||||
if (result.published) {
|
||||
core.setOutput("published", "true");
|
||||
core.setOutput(
|
||||
"published-packages",
|
||||
JSON.stringify(result.publishedPackages),
|
||||
);
|
||||
} else {
|
||||
core.setOutput("published", "false");
|
||||
}
|
||||
|
||||
if (result.exitCode !== 0) {
|
||||
throw new Error(
|
||||
`Publish command exited with code ${result.exitCode}${
|
||||
result.published
|
||||
? `, but some packages were published: ${result.publishedPackages
|
||||
.map((p) => `${p.name}@${p.version}`)
|
||||
.join(", ")}`
|
||||
: ""
|
||||
}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user