mirror of
https://github.com/github/codeql-action.git
synced 2026-05-07 14:20:19 +00:00
Add logic to download codeql platform-language pkg
* Add `bundleName` argument to `getCodeQLBundleDownloadURL` * Add `languages` argument to `setupCodeQL`. The logic now tries to find the platform-language pkg before defaulting to the full bundle. We keep the toolcache clean by adding the pl version to the tool version.
This commit is contained in:
Generated
+31
-7
@@ -22,16 +22,40 @@ testing_utils_1.setupTests(ava_1.default);
|
||||
ava_1.default('download codeql bundle cache', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const versions = ['20200601', '20200610'];
|
||||
const plVersions = ['linux64-cpp', undefined];
|
||||
for (let i = 0; i < versions.length; i++) {
|
||||
const version = versions[i];
|
||||
nock_1.default('https://example.com')
|
||||
.get(`/download/codeql-bundle-${version}/codeql-bundle.tar.gz`)
|
||||
.replyWithFile(200, path.join(__dirname, `/../src/testdata/codeql-bundle.tar.gz`));
|
||||
await codeql.setupCodeQL(`https://example.com/download/codeql-bundle-${version}/codeql-bundle.tar.gz`, 'token', 'https://github.example.com', tmpDir, tmpDir, 'runner', logging_1.getRunnerLogger(true));
|
||||
t.assert(toolcache.find('CodeQL', `0.0.0-${version}`));
|
||||
for (let j = 0; j < plVersions.length; j++) {
|
||||
const version = versions[i];
|
||||
const plVersion = plVersions[j];
|
||||
const pkg = plVersion ? `codeql-${plVersion}.tar.gz` : `codeql-bundle.tar.gz`;
|
||||
nock_1.default('https://example.com')
|
||||
.get(`/download/codeql-bundle-${version}/${pkg}`)
|
||||
.replyWithFile(200, path.join(__dirname, `/../src/testdata/codeql-bundle.tar.gz`));
|
||||
await codeql.setupCodeQL(`https://example.com/download/codeql-bundle-${version}/codeql-bundle.tar.gz`, plVersion, 'token', 'https://github.example.com', tmpDir, tmpDir, 'runner', logging_1.getRunnerLogger(true));
|
||||
const toolcacheVersion = plVersion ? `0.0.0-${version}-${plVersion}` : `0.0.0-${version}`;
|
||||
console.debug(toolcacheVersion);
|
||||
t.assert(toolcache.find('CodeQL', toolcacheVersion), `Looking for ${toolcacheVersion} - ${plVersion}`);
|
||||
}
|
||||
}
|
||||
const cachedVersions = toolcache.findAllVersions('CodeQL');
|
||||
t.is(cachedVersions.length, 2);
|
||||
t.is(cachedVersions.length, 4);
|
||||
});
|
||||
});
|
||||
ava_1.default('use codeql bundle cache if pl version is not available', async (t) => {
|
||||
// If we look for a pl version but find in cache the bundle, we use the bundle
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const version = '20200601';
|
||||
const plVersion = 'linux64-cpp';
|
||||
nock_1.default('https://example.com')
|
||||
.get(`/download/codeql-bundle-${version}/codeql-bundle.tar.gz`)
|
||||
.replyWithFile(200, path.join(__dirname, `/../src/testdata/codeql-bundle.tar.gz`));
|
||||
await codeql.setupCodeQL(`https://example.com/download/codeql-bundle-${version}/codeql-bundle.tar.gz`, undefined, 'token', 'https://github.example.com', tmpDir, tmpDir, 'runner', logging_1.getRunnerLogger(true));
|
||||
t.assert(toolcache.find('CodeQL', `0.0.0-${version}`));
|
||||
t.is(toolcache.findAllVersions('CodeQL').length, 1);
|
||||
// Now try to request the plVersion, and see that we do not change the cache
|
||||
await codeql.setupCodeQL(`https://example.com/download/codeql-bundle-${version}/codeql-bundle.tar.gz`, plVersion, 'token', 'https://github.example.com', tmpDir, tmpDir, 'runner', logging_1.getRunnerLogger(true));
|
||||
t.assert(toolcache.find('CodeQL', `0.0.0-${version}`));
|
||||
t.is(toolcache.findAllVersions('CodeQL').length, 1);
|
||||
});
|
||||
});
|
||||
ava_1.default('parse codeql bundle url version', t => {
|
||||
|
||||
Reference in New Issue
Block a user