import * as github from '@actions/github'; import * as core from '@actions/core'; import {CoreInputs} from './Inputs'; import {GithubReleases} from './Releases'; import {Action} from './Action'; import {GithubArtifactUploader} from './ArtifactUploader'; import {FileArtifactGlobber} from './ArtifactGlobber'; import {GithubError} from './GithubError'; import {CoreOutputs} from "./Outputs"; import {GithubArtifactDestroyer} from "./ArtifactDestroyer"; import {ActionSkipper, ReleaseActionSkipper} from "./ActionSkipper"; async function run() { try { const action = createAction() await action.perform() } catch (error) { const githubError = new GithubError(error) core.setFailed(githubError.toString()); } } function createAction(): Action { const token = core.getInput('token') const context = github.context const git = github.getOctokit(token) const globber = new FileArtifactGlobber() const inputs = new CoreInputs(globber, context) const outputs = new CoreOutputs() const releases = new GithubReleases(inputs, git) const skipper = new ReleaseActionSkipper(inputs.skipIfReleaseExists, releases, inputs.tag) const uploader = new GithubArtifactUploader(releases, inputs.replacesArtifacts, inputs.artifactErrorsFailBuild) const artifactDestroyer = new GithubArtifactDestroyer(releases) return new Action(inputs, outputs, releases, uploader, artifactDestroyer, skipper) } run();