in gitlab/src/utils.ts [262:311]
await gitOutput(['fetch', 'origin'])
const output = await gitOutput([
'merge-base',
'origin/' + targetBranch,
'origin/' + sourceBranch
])
return output.stdout.trim()
}
return ''
} catch (e) {
console.warn(
`Failed to determine merge base for PR mode, falling back to regular scan: ${(e as Error).message}`
)
return ''
}
}
function getInitialCacheLocation(): string {
return (
getQodanaInputArg('CACHE_DIR') ||
`${process.env['CI_PROJECT_DIR']}/.qodana/cache`
)
}
// at this moment any changes inside .qodana dir may affect analysis results
export function prepareCaches(cacheDir: string): void {
const initialCacheLocation = getInitialCacheLocation()
if (fs.existsSync(initialCacheLocation)) {
fs.cpSync(initialCacheLocation, cacheDir, {recursive: true})
fs.rmSync(initialCacheLocation, {recursive: true})
}
}
export function uploadCache(cacheDir: string, execute: boolean): void {
if (!execute) {
return
}
try {
const initialCacheLocation = getInitialCacheLocation()
fs.cpSync(cacheDir, initialCacheLocation, {recursive: true})
} catch (e) {
console.error(`Failed to upload cache: ${(e as Error).message}`)
}
}
export function uploadArtifacts(resultsDir: string): void {
try {
const resultDir = getQodanaInputArg('RESULTS_DIR')
const ciProjectDir = process.env['CI_PROJECT_DIR']
if (!ciProjectDir) {