This commit is contained in:
Kir_Antipov 2023-05-19 20:40:51 +03:00
parent e7368e858a
commit a4e93b6ce5
3 changed files with 908 additions and 184 deletions

View file

@ -1,325 +1,539 @@
name: Publish Minecraft Mods
description: GitHub Action that helps you publish your Minecraft mods
# ######################################################################## #
# WARNING: AUTO-GENERATED FILE - DO NOT EDIT! #
# #
# Please be advised that this is an auto-generated file and should NOT be #
# modified. Any changes made to this file WILL BE OVERWRITTEN. #
# #
# To make changes to the contents of this file, please modify the #
# action.template.yml file instead. This will ensure that your changes are #
# properly reflected in the auto-generated file. #
# ######################################################################## #
name: mc-publish
description: Your one-stop GitHub Action for seamless Minecraft project
publication across various platforms.
author: Kir-Antipov
branding:
color: orange
icon: upload
color: purple
icon: box
types:
input:
name: McPublishInput
description: The input parameters for the action.
output:
name: McPublishOutput
description: The output parameters provided by the action.
groups:
input:
modrinth:
type: ModrinthUploadRequest
description: Options used to publish Minecraft projects to Modrinth.
curseforge:
type: CurseForgeUploadRequest
description: Options used to publish Minecraft projects to CurseForge.
github:
type: GitHubUploadRequest
description: Options used to publish Minecraft projects to GitHub.
output:
modrinth:
type: ModrinthUploadReport
description: Report detailing the status of the project published on Modrinth.
curseforge:
type: CurseForgeUploadReport
description: Report detailing the status of the project published on CurseForge.
github:
type: GitHubUploadReport
description: Report detailing the status of the project published on GitHub.
inputs:
modrinth-id:
description: The ID of the Modrinth project to upload to
type: string
description: The unique identifier of your Modrinth project.
required: false
default: ${undefined}
modrinth-featured:
description: Indicates whether the version should be featured on Modrinth or not
type: boolean
description: Set to true to feature the version on Modrinth; false otherwise.
required: false
default: ${undefined}
modrinth-unfeature-mode:
description: Determines the way automatic unfeaturing of older Modrinth versions works
type: platforms.modrinth.ModrinthUnfeatureMode
description: Sets the behavior for unfeaturing older Modrinth versions.
default: subset
required: false
default: ${undefined}
modrinth-token:
description: A valid token for the Modrinth API
type: utils.security.SecureString
description: Your Modrinth API token.
required: false
default: ${undefined}
curseforge-id:
description: The ID of the CurseForge project to upload to
type: string
description: The unique identifier of your CurseForge project.
required: false
default: ${undefined}
curseforge-token:
description: A valid token for the CurseForge API
type: utils.security.SecureString
description: Your CurseForge API token.
required: false
default: ${undefined}
github-tag:
description: The tag name of the release to upload assets to
type: string
description: The tag name for the release where assets will be uploaded.
required: false
default: ${undefined}
github-generate-changelog:
description: Indicates whether to automatically generate the changelog for this
release. If changelog is specified, it will be pre-pended to the
automatically generated notes. Unused if the GitHub Release already exists
type: boolean
description: Set to true to generate a changelog automatically for this release;
false otherwise. Ignored if the GitHub Release already exists.
required: false
default: ${undefined}
github-draft:
description: true to create a draft (unpublished) release, false to create a
published one. Unused if the GitHub Release already exists
type: boolean
description: Set to true to create a draft release; false otherwise. Ignored if
the GitHub Release already exists.
required: false
default: ${undefined}
github-prerelease:
description: true to identify the release as a prerelease, false to identify the
release as a full release. Unused if the GitHub Release already exists
type: boolean
description: Set to true to mark the release as a prerelease; false otherwise.
Ignored if the GitHub Release already exists.
required: false
default: ${undefined}
github-commitish:
description: Specifies the commitish value that determines where the Git tag is
created from. Can be any branch or commit SHA. Unused if the Git tag
already exists
type: string
description: Defines the commitish value that determines where the Git tag is
created from. Can be any branch or commit SHA. Ignored if the Git tag
already exists.
required: false
default: ${undefined}
github-discussion:
description: If specified, a discussion of the specified category is created and
linked to the release. Unused if the GitHub Release already exists
type: string
description: If specified, creates and links a discussion of the specified
**existing** category to the release. Ignored if the GitHub Release
already exists.
required: false
default: ${undefined}
github-token:
description: A valid token for the GitHub API
type: utils.security.SecureString
description: Your GitHub API token.
required: false
default: ${undefined}
files:
description: A glob of the files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
description: An array of globs determining which files to upload.
default: |
build/libs/!(*-@(dev|sources|javadoc)).jar
build/libs/*-@(dev|sources|javadoc).jar
required: false
default: ${undefined}
files-primary:
description: A glob of the primary files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: files
description: A glob determining the primary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
files-secondary:
description: A glob of the secondary files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: void
description: A glob determining the secondary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
name:
description: The name of the version
type: string
description: The name of the version.
required: false
default: ${undefined}
version:
description: The version number
type: string
description: The version number.
required: false
default: ${undefined}
version-type:
description: The type of the release - alpha, beta, or release
type: utils.versioning.VersionType
description: The version type - alpha, beta, or release.
required: false
default: ${undefined}
changelog:
description: The changelog for this version
type: string
description: The changelog for this version.
required: false
default: ${undefined}
changelog-file:
description: A glob of the changelog file
type: string;utils/io/file-info->{readAllText}
redirect: changelog
description: A glob pointing to the changelog file.
required: false
default: ${undefined}
loaders:
description: A list of supported mod loaders
type: string[]?separator=/\s%2B/
description: An array of supported mod loaders.
required: false
default: ${undefined}
game-versions:
description: A list of supported Minecraft versions
type: string[]
description: An array of supported Minecraft versions.
required: false
default: ${undefined}
dependencies:
description: A list of dependencies
type: dependencies.Dependency[]
description: An array of dependencies required by your project.
required: false
default: ${undefined}
version-resolver:
description: Determines the way automatic game-versions resolvement works
type: games.GameVersionFilter:fromVersionResolver
redirect: game-version-filter
description: Controls the method used to automatically resolve game versions.
deprecationMessage: Please, use 'game-version-filter' instead.
required: false
default: ${undefined}
game-version-filter:
type: games.GameVersionFilter
description: Controls the method used to filter game versions.
default: releases | min-major | min-minor
required: false
java:
description: A list of supported Java versions
type: utils.java.JavaVersion[]
description: An array of Java versions compatible with your project.
required: false
default: ${undefined}
retry-attempts:
description: The maximum number of attempts to publish assets
description: Defines the maximum number of asset publishing attempts.
type: number
default: 2
required: false
retry-delay:
description: Time delay between attempts to publish assets (in milliseconds)
description: Specifies the delay (in milliseconds) between asset publishing attempts.
type: number
default: 10000
required: false
fail-mode:
description: Determines how errors that occur during mod publishing process are handled
type: utils.errors.FailMode
description: Controls how the action responds to errors during the mod
publishing process.
default: fail
required: false
default: ${undefined}
modrinth-files:
description: A glob of the files to upload
required: false
default: ${undefined}
modrinth-files-primary:
description: A glob of the primary files to upload
required: false
default: ${undefined}
modrinth-files-secondary:
description: A glob of the secondary files to upload
required: false
default: ${undefined}
modrinth-name:
description: The name of the version
required: false
default: ${undefined}
modrinth-version:
description: The version number
required: false
default: ${undefined}
modrinth-version-type:
description: The type of the release - alpha, beta, or release
required: false
default: ${undefined}
modrinth-changelog:
description: The changelog for this version
required: false
default: ${undefined}
modrinth-changelog-file:
description: A glob of the changelog file
required: false
default: ${undefined}
modrinth-loaders:
description: A list of supported mod loaders
required: false
default: ${undefined}
modrinth-game-versions:
description: A list of supported Minecraft versions
required: false
default: ${undefined}
modrinth-dependencies:
description: A list of dependencies
required: false
default: ${undefined}
modrinth-version-resolver:
description: Determines the way automatic game-versions resolvement works
required: false
default: ${undefined}
modrinth-java:
description: A list of supported Java versions
required: false
default: ${undefined}
modrinth-retry-attempts:
description: The maximum number of attempts to publish assets
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
description: An array of globs determining which files to upload.
default: ${undefined}
required: false
modrinth-retry-delay:
description: Time delay between attempts to publish assets (in milliseconds)
default: ${undefined}
required: false
modrinth-fail-mode:
description: Determines how errors that occur during mod publishing process are handled
required: false
default: ${undefined}
curseforge-files:
description: A glob of the files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
description: An array of globs determining which files to upload.
default: ${undefined}
required: false
github-files:
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
description: An array of globs determining which files to upload.
default: ${undefined}
required: false
modrinth-files-primary:
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: modrinth-files
description: A glob determining the primary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
curseforge-files-primary:
description: A glob of the primary files to upload
required: false
default: ${undefined}
curseforge-files-secondary:
description: A glob of the secondary files to upload
required: false
default: ${undefined}
curseforge-name:
description: The name of the version
required: false
default: ${undefined}
curseforge-version:
description: The version number
required: false
default: ${undefined}
curseforge-version-type:
description: The type of the release - alpha, beta, or release
required: false
default: ${undefined}
curseforge-changelog:
description: The changelog for this version
required: false
default: ${undefined}
curseforge-changelog-file:
description: A glob of the changelog file
required: false
default: ${undefined}
curseforge-loaders:
description: A list of supported mod loaders
required: false
default: ${undefined}
curseforge-game-versions:
description: A list of supported Minecraft versions
required: false
default: ${undefined}
curseforge-dependencies:
description: A list of dependencies
required: false
default: ${undefined}
curseforge-version-resolver:
description: Determines the way automatic game-versions resolvement works
required: false
default: ${undefined}
curseforge-java:
description: A list of supported Java versions
required: false
default: ${undefined}
curseforge-retry-attempts:
description: The maximum number of attempts to publish assets
default: ${undefined}
required: false
curseforge-retry-delay:
description: Time delay between attempts to publish assets (in milliseconds)
default: ${undefined}
required: false
curseforge-fail-mode:
description: Determines how errors that occur during mod publishing process are handled
required: false
default: ${undefined}
github-files:
description: A glob of the files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: curseforge-files
description: A glob determining the primary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
github-files-primary:
description: A glob of the primary files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: github-files
description: A glob determining the primary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
modrinth-files-secondary:
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: modrinth-void
description: A glob determining the secondary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
curseforge-files-secondary:
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: curseforge-void
description: A glob determining the secondary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
github-files-secondary:
description: A glob of the secondary files to upload
type: utils.io.FileInfo[]:{findFiles}?processSeparately=false
redirect: github-void
description: A glob determining the secondary files to upload.
deprecationMessage: Please, use 'files' instead.
required: false
default: ${undefined}
modrinth-name:
type: string
description: The name of the version.
required: false
default: ${undefined}
curseforge-name:
type: string
description: The name of the version.
required: false
default: ${undefined}
github-name:
description: The name of the version
type: string
description: The name of the version.
required: false
default: ${undefined}
modrinth-version:
type: string
description: The version number.
required: false
default: ${undefined}
curseforge-version:
type: string
description: The version number.
required: false
default: ${undefined}
github-version:
description: The version number
type: string
description: The version number.
required: false
default: ${undefined}
modrinth-version-type:
type: utils.versioning.VersionType
description: The version type - alpha, beta, or release.
required: false
default: ${undefined}
curseforge-version-type:
type: utils.versioning.VersionType
description: The version type - alpha, beta, or release.
required: false
default: ${undefined}
github-version-type:
description: The type of the release - alpha, beta, or release
type: utils.versioning.VersionType
description: The version type - alpha, beta, or release.
required: false
default: ${undefined}
modrinth-changelog:
type: string
description: The changelog for this version.
required: false
default: ${undefined}
curseforge-changelog:
type: string
description: The changelog for this version.
required: false
default: ${undefined}
github-changelog:
description: The changelog for this version
type: string
description: The changelog for this version.
required: false
default: ${undefined}
modrinth-changelog-file:
type: string;utils/io/file-info->{readAllText}
redirect: modrinth-changelog
description: A glob pointing to the changelog file.
required: false
default: ${undefined}
curseforge-changelog-file:
type: string;utils/io/file-info->{readAllText}
redirect: curseforge-changelog
description: A glob pointing to the changelog file.
required: false
default: ${undefined}
github-changelog-file:
description: A glob of the changelog file
type: string;utils/io/file-info->{readAllText}
redirect: github-changelog
description: A glob pointing to the changelog file.
required: false
default: ${undefined}
modrinth-loaders:
type: string[]?separator=/\s%2B/
description: An array of supported mod loaders.
required: false
default: ${undefined}
curseforge-loaders:
type: string[]?separator=/\s%2B/
description: An array of supported mod loaders.
required: false
default: ${undefined}
github-loaders:
description: A list of supported mod loaders
type: string[]?separator=/\s%2B/
description: An array of supported mod loaders.
required: false
default: ${undefined}
modrinth-game-versions:
type: string[]
description: An array of supported Minecraft versions.
required: false
default: ${undefined}
curseforge-game-versions:
type: string[]
description: An array of supported Minecraft versions.
required: false
default: ${undefined}
github-game-versions:
description: A list of supported Minecraft versions
type: string[]
description: An array of supported Minecraft versions.
required: false
default: ${undefined}
modrinth-dependencies:
type: dependencies.Dependency[]
description: An array of dependencies required by your project.
required: false
default: ${undefined}
curseforge-dependencies:
type: dependencies.Dependency[]
description: An array of dependencies required by your project.
required: false
default: ${undefined}
github-dependencies:
description: A list of dependencies
type: dependencies.Dependency[]
description: An array of dependencies required by your project.
required: false
default: ${undefined}
modrinth-version-resolver:
type: games.GameVersionFilter:fromVersionResolver
redirect: modrinth-game-version-filter
description: Controls the method used to automatically resolve game versions.
deprecationMessage: Please, use 'game-version-filter' instead.
required: false
default: ${undefined}
curseforge-version-resolver:
type: games.GameVersionFilter:fromVersionResolver
redirect: curseforge-game-version-filter
description: Controls the method used to automatically resolve game versions.
deprecationMessage: Please, use 'game-version-filter' instead.
required: false
default: ${undefined}
github-version-resolver:
description: Determines the way automatic game-versions resolvement works
type: games.GameVersionFilter:fromVersionResolver
redirect: github-game-version-filter
description: Controls the method used to automatically resolve game versions.
deprecationMessage: Please, use 'game-version-filter' instead.
required: false
default: ${undefined}
modrinth-game-version-filter:
type: games.GameVersionFilter
description: Controls the method used to filter game versions.
default: ${undefined}
required: false
curseforge-game-version-filter:
type: games.GameVersionFilter
description: Controls the method used to filter game versions.
default: ${undefined}
required: false
github-game-version-filter:
type: games.GameVersionFilter
description: Controls the method used to filter game versions.
default: ${undefined}
required: false
modrinth-java:
type: utils.java.JavaVersion[]
description: An array of Java versions compatible with your project.
required: false
default: ${undefined}
curseforge-java:
type: utils.java.JavaVersion[]
description: An array of Java versions compatible with your project.
required: false
default: ${undefined}
github-java:
description: A list of supported Java versions
type: utils.java.JavaVersion[]
description: An array of Java versions compatible with your project.
required: false
default: ${undefined}
modrinth-retry-attempts:
description: Defines the maximum number of asset publishing attempts.
type: number
default: ${undefined}
required: false
curseforge-retry-attempts:
description: Defines the maximum number of asset publishing attempts.
type: number
default: ${undefined}
required: false
github-retry-attempts:
description: The maximum number of attempts to publish assets
description: Defines the maximum number of asset publishing attempts.
type: number
default: ${undefined}
required: false
modrinth-retry-delay:
description: Specifies the delay (in milliseconds) between asset publishing attempts.
type: number
default: ${undefined}
required: false
curseforge-retry-delay:
description: Specifies the delay (in milliseconds) between asset publishing attempts.
type: number
default: ${undefined}
required: false
github-retry-delay:
description: Time delay between attempts to publish assets (in milliseconds)
description: Specifies the delay (in milliseconds) between asset publishing attempts.
type: number
default: ${undefined}
required: false
modrinth-fail-mode:
type: utils.errors.FailMode
description: Controls how the action responds to errors during the mod
publishing process.
default: ${undefined}
required: false
curseforge-fail-mode:
type: utils.errors.FailMode
description: Controls how the action responds to errors during the mod
publishing process.
default: ${undefined}
required: false
github-fail-mode:
description: Determines how errors that occur during mod publishing process are handled
required: false
type: utils.errors.FailMode
description: Controls how the action responds to errors during the mod
publishing process.
default: ${undefined}
required: false
outputs:
modrinth-id:
type: string
description: The unique identifier of your Modrinth project.
modrinth-version:
type: string
description: The unique identifier of the version published on Modrinth by this action.
modrinth-url:
type: string
description: The URL directing to the newly published version on Modrinth.
modrinth-files:
type: platforms.UploadedFile[]
description: Array of objects, each containing details about the files published
for the new version on Modrinth, such as file `name`, `id`, and download
`url`.
curseforge-id:
type: number
description: The unique identifier of your CurseForge project.
curseforge-version:
type: number
description: The unique identifier of the version published on CurseForge by
this action.
curseforge-url:
type: string
description: The URL directing to the newly published version on CurseForge.
curseforge-files:
type: platforms.UploadedFile[]
description: Array of objects, each containing details about the files published
for the new version on CurseForge, such as file `name`, `id`, and download
`url`.
github-repo:
type: string
description: The full repository name on GitHub, formatted as 'username/repository'.
github-tag:
type: string
description: The Git tag associated with the new or updated release published on GitHub.
github-url:
type: string
description: The URL directing to the newly published version on GitHub.
github-files:
type: platforms.UploadedFile[]
description: Array of objects, each containing details about the files published
for the new version on GitHub, such as file `name`, `id`, and download
`url`.
runs:
using: node12
using: node16
main: dist/index.js

480
src/action.ts Normal file
View file

@ -0,0 +1,480 @@
/* ************************************************************************ */
/* WARNING: AUTO-GENERATED FILE - DO NOT EDIT! */
/* */
/* Please be advised that this is an auto-generated file and should NOT be */
/* modified. Any changes made to this file WILL BE OVERWRITTEN. */
/* */
/* To make changes to the contents of this file, please modify the */
/* action.template.yml file instead. This will ensure that your changes are */
/* properly reflected in the auto-generated file. */
/* ************************************************************************ */
/* eslint-disable */
import { ModrinthUnfeatureMode } from "@/platforms/modrinth/modrinth-unfeature-mode";
import { SecureString } from "@/utils/security/secure-string";
import { FileInfo } from "@/utils/io/file-info";
import { VersionType } from "@/utils/versioning/version-type";
import { Dependency } from "@/dependencies/dependency";
import { GameVersionFilter } from "@/games/game-version-filter";
import { JavaVersion } from "@/utils/java/java-version";
import { FailMode } from "@/utils/errors/fail-mode";
import { UploadedFile } from "@/platforms/uploaded-file";
/**
* Your one-stop GitHub Action for seamless Minecraft project publication across various platforms.
*/
export const ACTION_NAME = "mc-publish";
/**
* The input parameters for the action.
*/
export interface McPublishInput {
/**
* Options used to publish Minecraft projects to Modrinth.
*/
modrinth?: {
/**
* The unique identifier of your Modrinth project.
*/
id?: string;
/**
* Set to true to feature the version on Modrinth; false otherwise.
*/
featured?: boolean;
/**
* Sets the behavior for unfeaturing older Modrinth versions.
*/
unfeatureMode?: ModrinthUnfeatureMode;
/**
* Your Modrinth API token.
*/
token?: SecureString;
/**
* An array of globs determining which files to upload.
*/
files?: FileInfo[];
/**
* The name of the version.
*/
name?: string;
/**
* The version number.
*/
version?: string;
/**
* The version type - alpha, beta, or release.
*/
versionType?: VersionType;
/**
* The changelog for this version.
*/
changelog?: string;
/**
* An array of supported mod loaders.
*/
loaders?: string[];
/**
* An array of supported Minecraft versions.
*/
gameVersions?: string[];
/**
* An array of dependencies required by your project.
*/
dependencies?: Dependency[];
/**
* Controls the method used to filter game versions.
*/
gameVersionFilter?: GameVersionFilter;
/**
* An array of Java versions compatible with your project.
*/
java?: JavaVersion[];
/**
* Defines the maximum number of asset publishing attempts.
*/
retryAttempts?: number;
/**
* Specifies the delay (in milliseconds) between asset publishing attempts.
*/
retryDelay?: number;
/**
* Controls how the action responds to errors during the mod publishing process.
*/
failMode?: FailMode;
};
/**
* Options used to publish Minecraft projects to CurseForge.
*/
curseforge?: {
/**
* The unique identifier of your CurseForge project.
*/
id?: string;
/**
* Your CurseForge API token.
*/
token?: SecureString;
/**
* An array of globs determining which files to upload.
*/
files?: FileInfo[];
/**
* The name of the version.
*/
name?: string;
/**
* The version number.
*/
version?: string;
/**
* The version type - alpha, beta, or release.
*/
versionType?: VersionType;
/**
* The changelog for this version.
*/
changelog?: string;
/**
* An array of supported mod loaders.
*/
loaders?: string[];
/**
* An array of supported Minecraft versions.
*/
gameVersions?: string[];
/**
* An array of dependencies required by your project.
*/
dependencies?: Dependency[];
/**
* Controls the method used to filter game versions.
*/
gameVersionFilter?: GameVersionFilter;
/**
* An array of Java versions compatible with your project.
*/
java?: JavaVersion[];
/**
* Defines the maximum number of asset publishing attempts.
*/
retryAttempts?: number;
/**
* Specifies the delay (in milliseconds) between asset publishing attempts.
*/
retryDelay?: number;
/**
* Controls how the action responds to errors during the mod publishing process.
*/
failMode?: FailMode;
};
/**
* Options used to publish Minecraft projects to GitHub.
*/
github?: {
/**
* The tag name for the release where assets will be uploaded.
*/
tag?: string;
/**
* Set to true to generate a changelog automatically for this release; false otherwise. Ignored if the GitHub Release already exists.
*/
generateChangelog?: boolean;
/**
* Set to true to create a draft release; false otherwise. Ignored if the GitHub Release already exists.
*/
draft?: boolean;
/**
* Set to true to mark the release as a prerelease; false otherwise. Ignored if the GitHub Release already exists.
*/
prerelease?: boolean;
/**
* Defines the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Ignored if the Git tag already exists.
*/
commitish?: string;
/**
* If specified, creates and links a discussion of the specified **existing** category to the release. Ignored if the GitHub Release already exists.
*/
discussion?: string;
/**
* Your GitHub API token.
*/
token?: SecureString;
/**
* An array of globs determining which files to upload.
*/
files?: FileInfo[];
/**
* The name of the version.
*/
name?: string;
/**
* The version number.
*/
version?: string;
/**
* The version type - alpha, beta, or release.
*/
versionType?: VersionType;
/**
* The changelog for this version.
*/
changelog?: string;
/**
* An array of supported mod loaders.
*/
loaders?: string[];
/**
* An array of supported Minecraft versions.
*/
gameVersions?: string[];
/**
* An array of dependencies required by your project.
*/
dependencies?: Dependency[];
/**
* Controls the method used to filter game versions.
*/
gameVersionFilter?: GameVersionFilter;
/**
* An array of Java versions compatible with your project.
*/
java?: JavaVersion[];
/**
* Defines the maximum number of asset publishing attempts.
*/
retryAttempts?: number;
/**
* Specifies the delay (in milliseconds) between asset publishing attempts.
*/
retryDelay?: number;
/**
* Controls how the action responds to errors during the mod publishing process.
*/
failMode?: FailMode;
};
/**
* An array of globs determining which files to upload.
*/
files?: FileInfo[];
/**
* The name of the version.
*/
name?: string;
/**
* The version number.
*/
version?: string;
/**
* The version type - alpha, beta, or release.
*/
versionType?: VersionType;
/**
* The changelog for this version.
*/
changelog?: string;
/**
* An array of supported mod loaders.
*/
loaders?: string[];
/**
* An array of supported Minecraft versions.
*/
gameVersions?: string[];
/**
* An array of dependencies required by your project.
*/
dependencies?: Dependency[];
/**
* Controls the method used to filter game versions.
*/
gameVersionFilter?: GameVersionFilter;
/**
* An array of Java versions compatible with your project.
*/
java?: JavaVersion[];
/**
* Defines the maximum number of asset publishing attempts.
*/
retryAttempts?: number;
/**
* Specifies the delay (in milliseconds) between asset publishing attempts.
*/
retryDelay?: number;
/**
* Controls how the action responds to errors during the mod publishing process.
*/
failMode?: FailMode;
};
/**
* Options used to publish Minecraft projects to Modrinth.
*/
export type ModrinthUploadRequest = McPublishInput["modrinth"];
/**
* Options used to publish Minecraft projects to CurseForge.
*/
export type CurseForgeUploadRequest = McPublishInput["curseforge"];
/**
* Options used to publish Minecraft projects to GitHub.
*/
export type GitHubUploadRequest = McPublishInput["github"];
/**
* The output parameters provided by the action.
*/
export interface McPublishOutput {
/**
* Report detailing the status of the project published on Modrinth.
*/
modrinth: {
/**
* The unique identifier of your Modrinth project.
*/
id: string;
/**
* The unique identifier of the version published on Modrinth by this action.
*/
version: string;
/**
* The URL directing to the newly published version on Modrinth.
*/
url: string;
/**
* Array of objects, each containing details about the files published for the new version on Modrinth, such as file `name`, `id`, and download `url`.
*/
files: UploadedFile[];
};
/**
* Report detailing the status of the project published on CurseForge.
*/
curseforge: {
/**
* The unique identifier of your CurseForge project.
*/
id: number;
/**
* The unique identifier of the version published on CurseForge by this action.
*/
version: number;
/**
* The URL directing to the newly published version on CurseForge.
*/
url: string;
/**
* Array of objects, each containing details about the files published for the new version on CurseForge, such as file `name`, `id`, and download `url`.
*/
files: UploadedFile[];
};
/**
* Report detailing the status of the project published on GitHub.
*/
github: {
/**
* The full repository name on GitHub, formatted as 'username/repository'.
*/
repo: string;
/**
* The Git tag associated with the new or updated release published on GitHub.
*/
tag: string;
/**
* The URL directing to the newly published version on GitHub.
*/
url: string;
/**
* Array of objects, each containing details about the files published for the new version on GitHub, such as file `name`, `id`, and download `url`.
*/
files: UploadedFile[];
};
};
/**
* Report detailing the status of the project published on Modrinth.
*/
export type ModrinthUploadReport = McPublishOutput["modrinth"];
/**
* Report detailing the status of the project published on CurseForge.
*/
export type CurseForgeUploadReport = McPublishOutput["curseforge"];
/**
* Report detailing the status of the project published on GitHub.
*/
export type GitHubUploadReport = McPublishOutput["github"];

View file

@ -1,3 +1,33 @@
/* ************************************************************************ */
/* WARNING: AUTO-GENERATED FILE - DO NOT EDIT! */
/* */
/* Please be advised that this is an auto-generated file and should NOT be */
/* modified. Any changes made to this file WILL BE OVERWRITTEN. */
/* */
/* To make changes to the contents of this file, please modify the */
/* action.template.yml file instead. This will ensure that your changes are */
/* properly reflected in the auto-generated file. */
/* ************************************************************************ */
/* eslint-disable */
import * as _08266313cf301b8949a6cedcaa47a6c3e43934d9 from "@/platforms/modrinth/modrinth-unfeature-mode";
import * as _d55dccbfda6518ce241204ddb1a0e427ce862b40 from "@/utils/security/secure-string";
import * as _52f2d2846827ca15dbb2bc99e7396358640a305c from "@/utils/io/file-info";
import * as _cece1ed3512bc9bb742f3472360aea9d482df4ac from "@/utils/versioning/version-type";
import * as _61ccbb54c5e0251e3bf7013ca2e222f64c571674 from "@/dependencies/dependency";
import * as _12c3001b56ab71951504c91b71926343a997a6c2 from "@/games/game-version-filter";
import * as _9f1d8775cb694c12b0f9f4e026b96daf7eca20c3 from "@/utils/java/java-version";
import * as _78525bc7f22a643e04dd785d89dd01e5c9c2f812 from "@/utils/errors/fail-mode";
import * as _6f74c0ca5e9e22747c834103f851654db4509ca8 from "@/platforms/uploaded-file";
export const ACTION_MODULE_LOADER = (path: string): Promise<Record<string, unknown>> => {
return Promise.resolve(path ? undefined : null);
if (path === "platforms/modrinth/modrinth-unfeature-mode") return Promise.resolve(_08266313cf301b8949a6cedcaa47a6c3e43934d9);
if (path === "utils/security/secure-string") return Promise.resolve(_d55dccbfda6518ce241204ddb1a0e427ce862b40);
if (path === "utils/io/file-info") return Promise.resolve(_52f2d2846827ca15dbb2bc99e7396358640a305c);
if (path === "utils/versioning/version-type") return Promise.resolve(_cece1ed3512bc9bb742f3472360aea9d482df4ac);
if (path === "dependencies/dependency") return Promise.resolve(_61ccbb54c5e0251e3bf7013ca2e222f64c571674);
if (path === "games/game-version-filter") return Promise.resolve(_12c3001b56ab71951504c91b71926343a997a6c2);
if (path === "utils/java/java-version") return Promise.resolve(_9f1d8775cb694c12b0f9f4e026b96daf7eca20c3);
if (path === "utils/errors/fail-mode") return Promise.resolve(_78525bc7f22a643e04dd785d89dd01e5c9c2f812);
if (path === "platforms/uploaded-file") return Promise.resolve(_6f74c0ca5e9e22747c834103f851654db4509ca8);
return Promise.resolve(undefined);
};