An ES (JavaScript & TypeScript) module to provide a better and easier way for GitHub Actions to communicate with the runner, and the toolkit for developing GitHub Actions.
This is a partial refactor of the official toolkit, not all of the features in the official toolkit are available here, and not all of the features in here are available in the official toolkit.
- Ability to use directly on GitHub Actions with Deno runtime without complex setup.
- Compatible with bundler.
- Full ModuleJS.
Registry - JSR | Registry - NPM | Remote Import | |
---|---|---|---|
Bun >= v1.1.0 | ✔️ node_modules |
✔️ Specifier npm: |
❌ |
Deno >= v1.42.0 | ✔️ Specifier jsr: |
✔️ Specifier npm: |
✔️ |
NodeJS >= v16.13.0 | ✔️ node_modules |
✔️ node_modules |
❌ |
ℹ️ Note
It is possible to use this module in other methods/ways which not listed in here, however it is not officially supported.
- JSR:
@hugoalh/github-actions-core
- NPM:
@hugoalh/github-actions-core
ℹ️ Note
- Although it is recommended to import the entire module, it is also able to import part of the module with sub path if available, please visit file
jsr.jsonc
propertyexports
for available sub paths.- It is recommended to use this module with tag for immutability.
- GitHub Raw: (Require Tag)
https://raw.githubusercontent.com/hugoalh-studio/github-actions-core-es/${Tag}/mod.ts
ℹ️ Note
Although it is recommended to import the entire module with the main path
mod.ts
, it is also able to import part of the module with sub path if available, but do not import if:
- it's file path has an underscore prefix (e.g.:
_foo.ts
,_util/bar.ts
), or- it is a benchmark or test file (e.g.:
foo.bench.ts
,foo.test.ts
), or- it's symbol has an underscore prefix (e.g.:
export function _baz() {}
).These elements are not considered part of the public API, thus no stability is guaranteed for them.
Although there have 3rd party services which provide enhanced, equal, or similar methods/ways to remote import the module, beware these services maybe inject unrelated elements and thus affect the security.
This module does not require any permission.
ℹ️ Note
For the prettier documentation, can visit via:
GitHubActionsSummary
addPATH
addProblemMatcher
addSecretMask
disableEchoStdOutCommand
disableProcessStdOutCommand
enableEchoStdOutCommand
enableProcessStdOutCommand
endLogGroup
getGitHubAPIURL
getGitHubGraphQLAPIURL
getGitHubServerURL
getInput
getInputBigInt
getInputBoolean
getInputNumber
getInputRaw
getInputRegExp
getRunnerArchitecture
getRunnerDebugStatus
getRunnerName
getRunnerOS
getRunnerTempPath
getRunnerToolCachePath
getRunnerWorkspacePath
getState
getStateRaw
getWorkflowName
getWorkflowReferencePath
getWorkflowRepository
getWorkflowRepositoryID
getWorkflowRepositoryOwner
getWorkflowRepositoryOwnerID
getWorkflowRunActionID
getWorkflowRunActorID
getWorkflowRunActorName
getWorkflowRunCommitSHA
getWorkflowRunEventName
getWorkflowRunID
getWorkflowRunJobID
getWorkflowRunNumber
getWorkflowRunReference
getWorkflowRunRetentionDays
getWorkflowRunRunAttempt
getWorkflowRunURL
getWorkflowRunWebhookEventPayload
getWorkflowSHA
isInRunner
removeProblemMatcher
setEnvironmentVariable
setOutput
setState
startLogGroup
validateInRunner
writeAnnotation
writeDebug
writeError
writeNotice
writeWarn
GitHubActionsAnnotationProperties
GitHubActionsAnnotationType
GitHubActionsEnvironmentVariableOptions
GitHubActionsEventName
GitHubActionsFileCommandOptions
GitHubActionsInputOptions
GitHubActionsRunnerArchitecture
GitHubActionsRunnerOS
GitHubActionsRunnerTestOptions
GitHubActionsWebhookEventPayload
GitHubActionsWebhookEventPayloadRepository
GitHubReferenceMeta
GitHubReferenceType
-
writeNotice("Hello, world!"); //=> ::notice::Hello, world!