mirror of
https://git.mirrors.martin98.com/https://github.com/actions/toolkit
synced 2025-11-19 04:41:05 +08:00
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import os from 'os'
|
|
|
|
// Used for controlling the highWaterMark value of the zip that is being streamed
|
|
// The same value is used as the chunk size that is use during upload to blob storage
|
|
export function getUploadChunkSize(): number {
|
|
return 8 * 1024 * 1024 // 8 MB Chunks
|
|
}
|
|
|
|
export function getRuntimeToken(): string {
|
|
const token = process.env['ACTIONS_RUNTIME_TOKEN']
|
|
if (!token) {
|
|
throw new Error('Unable to get the ACTIONS_RUNTIME_TOKEN env variable')
|
|
}
|
|
return token
|
|
}
|
|
|
|
export function getResultsServiceUrl(): string {
|
|
const resultsUrl = process.env['ACTIONS_RESULTS_URL']
|
|
if (!resultsUrl) {
|
|
throw new Error('Unable to get the ACTIONS_RESULTS_URL env variable')
|
|
}
|
|
|
|
return new URL(resultsUrl).origin
|
|
}
|
|
|
|
export function isGhes(): boolean {
|
|
const ghUrl = new URL(
|
|
process.env['GITHUB_SERVER_URL'] || 'https://github.com'
|
|
)
|
|
|
|
let githubHosts = [
|
|
'GITHUB.COM',
|
|
'GITHUB.GHE.COM',
|
|
'GITHUB.GHE.LOCALHOST'
|
|
];
|
|
|
|
const hostname = ghUrl.hostname.trimEnd().toUpperCase()
|
|
|
|
return !githubHosts.includes(hostname)
|
|
}
|
|
|
|
export function getGitHubWorkspaceDir(): string {
|
|
const ghWorkspaceDir = process.env['GITHUB_WORKSPACE']
|
|
if (!ghWorkspaceDir) {
|
|
throw new Error('Unable to get the GITHUB_WORKSPACE env variable')
|
|
}
|
|
return ghWorkspaceDir
|
|
}
|
|
|
|
// Mimics behavior of azcopy: https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-optimize
|
|
// If your machine has fewer than 5 CPUs, then the value of this variable is set to 32.
|
|
// Otherwise, the default value is equal to 16 multiplied by the number of CPUs. The maximum value of this variable is 300.
|
|
export function getConcurrency(): number {
|
|
const numCPUs = os.cpus().length
|
|
|
|
if (numCPUs <= 4) {
|
|
return 32
|
|
}
|
|
|
|
const concurrency = 16 * numCPUs
|
|
return concurrency > 300 ? 300 : concurrency
|
|
}
|