in scripts/download-artifacts.js [38:111]
async function downloadArtifacts (localTests) {
const log = ora('Checking out spec and test').start()
const { GITHUB_TOKEN } = process.env
log.text = 'Clean tests folder'
await rimraf(testYamlFolder)
await mkdir(testYamlFolder, { recursive: true })
log.text = 'Fetching test YAML files'
if (localTests) {
log.text = `Copying local tests from ${localTests}`
await cp(localTests, testYamlFolder, { recursive: true })
} else {
if (!GITHUB_TOKEN) {
log.fail("Missing required environment variable 'GITHUB_TOKEN'")
process.exit(1)
}
let response = await fetch('https://api.github.com/repos/elastic/elasticsearch-clients-tests/zipball/main', {
headers: {
Authorization: `Bearer ${GITHUB_TOKEN}`,
Accept: "application/vnd.github+json",
}
})
if (!response.ok) {
log.fail(`unexpected response ${response.statusText}`)
process.exit(1)
}
log.text = 'Downloading tests zipball'
await pipeline(response.body, createWriteStream(zipFile))
log.text = 'Unzipping tests'
await unzip(zipFile, testYamlFolder)
log.text = 'Cleanup'
await rimraf(zipFile)
}
log.text = 'Fetching Elasticsearch spec info'
await rimraf(specFolder)
await mkdir(specFolder, { recursive: true })
response = await fetch('https://artifacts-api.elastic.co/v1/versions')
let data = await response.json()
const latest = data.versions[data.versions.length - 1]
response = await fetch(`https://artifacts-api.elastic.co/v1/versions/${latest}`)
data = await response.json()
const latestBuild = data.version.builds
.filter(build => build.projects.elasticsearch !== null)
.sort((a, b) => new Date(b.start_time) - new Date(a.start_time))[0]
const buildZip = Object.keys(latestBuild.projects.elasticsearch.packages)
.find(key => key.startsWith('rest-resources-zip-') && key.endsWith('.zip'))
const zipUrl = latestBuild.projects.elasticsearch.packages[buildZip].url
log.test = 'Fetching Elasticsearch spec zip'
response = await fetch(zipUrl)
log.text = 'Downloading spec zip'
const specZipFile = join(specFolder, 'rest-api-spec.zip')
await pipeline(response.body, createWriteStream(specZipFile))
log.text = 'Unzipping spec'
await unzip(specZipFile, specFolder)
log.text = 'Cleanup'
await rimraf(specZipFile)
log.succeed('Done')
}