UNPKG

@actions/artifact

Version:
83 lines 3.43 kB
import os from 'os'; import { info } from '@actions/core'; // 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() { return 8 * 1024 * 1024; // 8 MB Chunks } export function getRuntimeToken() { 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() { 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() { const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com'); const hostname = ghUrl.hostname.trimEnd().toUpperCase(); const isGitHubHost = hostname === 'GITHUB.COM'; const isGheHost = hostname.endsWith('.GHE.COM'); const isLocalHost = hostname.endsWith('.LOCALHOST'); return !isGitHubHost && !isGheHost && !isLocalHost; } export function getGitHubWorkspaceDir() { const ghWorkspaceDir = process.env['GITHUB_WORKSPACE']; if (!ghWorkspaceDir) { throw new Error('Unable to get the GITHUB_WORKSPACE env variable'); } return ghWorkspaceDir; } // The maximum value of concurrency is 300. // This value can be changed with ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY variable. export function getConcurrency() { const numCPUs = os.cpus().length; let concurrencyCap = 32; if (numCPUs > 4) { const concurrency = 16 * numCPUs; concurrencyCap = concurrency > 300 ? 300 : concurrency; } const concurrencyOverride = process.env['ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY']; if (concurrencyOverride) { const concurrency = parseInt(concurrencyOverride); if (isNaN(concurrency) || concurrency < 1) { throw new Error('Invalid value set for ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY env variable'); } if (concurrency < concurrencyCap) { info(`Set concurrency based on the value set in ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY.`); return concurrency; } info(`ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY is higher than the cap of ${concurrencyCap} based on the number of cpus. Set it to the maximum value allowed.`); return concurrencyCap; } // default concurrency to 5 return 5; } export function getUploadChunkTimeout() { const timeoutVar = process.env['ACTIONS_ARTIFACT_UPLOAD_TIMEOUT_MS']; if (!timeoutVar) { return 300000; // 5 minutes } const timeout = parseInt(timeoutVar); if (isNaN(timeout)) { throw new Error('Invalid value set for ACTIONS_ARTIFACT_UPLOAD_TIMEOUT_MS env variable'); } return timeout; } // This value can be changed with ACTIONS_ARTIFACT_MAX_ARTIFACT_COUNT variable. // Defaults to 1000 as a safeguard for rate limiting. export function getMaxArtifactListCount() { const maxCountVar = process.env['ACTIONS_ARTIFACT_MAX_ARTIFACT_COUNT'] || '1000'; const maxCount = parseInt(maxCountVar); if (isNaN(maxCount) || maxCount < 1) { throw new Error('Invalid value set for ACTIONS_ARTIFACT_MAX_ARTIFACT_COUNT env variable'); } return maxCount; } //# sourceMappingURL=config.js.map