mirror of
https://github.com/graalvm/setup-graalvm.git
synced 2024-10-12 14:09:56 +08:00
Cache musl setup in GitHub tool-cache.
This commit is contained in:
parent
66dc2bf069
commit
a02f4df8f7
BIN
dist/index.js
generated
vendored
BIN
dist/index.js
generated
vendored
Binary file not shown.
BIN
dist/index.js.map
generated
vendored
BIN
dist/index.js.map
generated
vendored
Binary file not shown.
@ -2,33 +2,33 @@ import * as core from '@actions/core'
|
||||
import * as tc from '@actions/tool-cache'
|
||||
import {IS_LINUX} from './constants'
|
||||
import {exec} from '@actions/exec'
|
||||
import {homedir} from 'os'
|
||||
import {join} from 'path'
|
||||
import {mkdirP} from '@actions/io'
|
||||
|
||||
const MUSL_NAME = 'x86_64-linux-musl-native'
|
||||
const MUSL_VERSION = '10.2.1'
|
||||
|
||||
export async function setUpNativeImageMusl(): Promise<void> {
|
||||
if (!IS_LINUX) {
|
||||
core.warning('musl is only supported on Linux')
|
||||
return
|
||||
}
|
||||
let toolPath = tc.find(MUSL_NAME, MUSL_VERSION)
|
||||
if (toolPath) {
|
||||
core.info(`Found ${MUSL_NAME} ${MUSL_VERSION} in tool-cache @ ${toolPath}`)
|
||||
} else {
|
||||
core.startGroup(`Setting up musl for GraalVM Native Image...`)
|
||||
const basePath = join(homedir(), '.musl_feature')
|
||||
await mkdirP(basePath)
|
||||
|
||||
const muslName = 'x86_64-linux-musl-native'
|
||||
const muslDownloadPath = await tc.downloadTool(
|
||||
`http://more.musl.cc/10/x86_64-linux-musl/${muslName}.tgz`
|
||||
`http://more.musl.cc/10/x86_64-linux-musl/${MUSL_NAME}.tgz`
|
||||
)
|
||||
await tc.extractTar(muslDownloadPath, basePath)
|
||||
const muslPath = join(basePath, muslName)
|
||||
core.addPath(join(muslPath, 'bin'))
|
||||
const muslExtractPath = await tc.extractTar(muslDownloadPath)
|
||||
const muslPath = join(muslExtractPath, MUSL_NAME)
|
||||
|
||||
const zlibVersion = '1.2.11'
|
||||
const zlibDownloadPath = await tc.downloadTool(
|
||||
`https://zlib.net/zlib-${zlibVersion}.tar.gz`
|
||||
)
|
||||
await tc.extractTar(zlibDownloadPath, basePath)
|
||||
const zlibPath = join(basePath, `zlib-${zlibVersion}`)
|
||||
const zlibExtractPath = await tc.extractTar(zlibDownloadPath)
|
||||
const zlibPath = join(zlibExtractPath, `zlib-${zlibVersion}`)
|
||||
const zlibBuildOptions = {
|
||||
cwd: zlibPath,
|
||||
env: {
|
||||
@ -43,5 +43,10 @@ export async function setUpNativeImageMusl(): Promise<void> {
|
||||
)
|
||||
await exec('make', [], zlibBuildOptions)
|
||||
await exec('make', ['install'], {cwd: zlibPath})
|
||||
|
||||
core.info(`Adding ${MUSL_NAME} ${MUSL_VERSION} to tool-cache ...`)
|
||||
toolPath = await tc.cacheDir(muslPath, MUSL_NAME, MUSL_VERSION)
|
||||
core.endGroup()
|
||||
}
|
||||
core.addPath(join(toolPath, 'bin'))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user