@@ -30710,26 +30710,36 @@ main().catch((error) => {
30710
30710
})
30711
30711
30712
30712
async function installElp(elpVersion) {
30713
+ // We to this because tool-cache only likes semver
30714
+ elpVersionForCache = semverFromELPVersion(elpVersion)
30715
+
30713
30716
const toolName = 'elp'
30714
- let cachePath = toolCache.find(toolName, elpVersion )
30717
+ let cachePath = toolCache.find(toolName, elpVersionForCache )
30715
30718
30716
30719
if (cachePath === '') {
30717
- core.debug(`ELP ${elpVersion} is not cached as a tool`)
30718
- const elpTarGzFile0 = await elpTarGzFile()
30719
- const repo = 'https://github.com/WhatsApp/erlang-language-platform'
30720
- const elpTarGz = `${repo}/releases/download/${elpVersion}/${elpTarGzFile0}`
30721
- core.debug(`ELP download URL is '${elpTarGz}'`)
30722
- const file = await toolCache.downloadTool(elpTarGz)
30720
+ core.debug(`ELP ${elpVersion} (cache version: '${elpVersionForCache}') is not cached as a tool`)
30721
+ const elpTarGzUrl = await elpTarGz(elpVersion)
30722
+ const file = await toolCache.downloadTool(elpTarGzUrl)
30723
30723
const targetDir = await toolCache.extractTar(file)
30724
- cachePath = await toolCache.cacheDir(targetDir, toolName, elpVersion )
30724
+ cachePath = await toolCache.cacheDir(targetDir, toolName, elpVersionForCache )
30725
30725
} else {
30726
- core.debug(`ELP ${elpVersion} is cached as a tool`)
30726
+ core.debug(`ELP ${elpVersion} (cache version: '${elpVersionForCache}') is cached as a tool`)
30727
30727
}
30728
30728
30729
+ // We want a deterministic name per runner (helpful for self-hosted, for example)
30729
30730
const runnerToolPath = path.join(process.env.RUNNER_TEMP, '.setup-elp', 'elp')
30730
30731
await fs.cp(cachePath, runnerToolPath, { recursive: true })
30731
30732
core.addPath(runnerToolPath)
30732
30733
30734
+ reportInstalledELPVersion()
30735
+ }
30736
+
30737
+ function semverFromELPVersion(elpVersion) {
30738
+ let [major, minor, patch, build] = elpVersion.split(/[-_]/).slice(0, 4)
30739
+ return `${Number(major)}.${Number(minor)}.${Number(patch)}+${Number(build) || 1}`
30740
+ }
30741
+
30742
+ async function reportInstalledELPVersion() {
30733
30743
const cmd = 'elp'
30734
30744
const args = ['version']
30735
30745
const version = await exec_(cmd, args)
@@ -30828,6 +30838,14 @@ async function elpTarGzFile() {
30828
30838
return elpTarGzFile
30829
30839
}
30830
30840
30841
+ async function elpTarGz(elpVersion) {
30842
+ const elpTarGzFile0 = await elpTarGzFile()
30843
+ const repo = 'https://github.com/WhatsApp/erlang-language-platform'
30844
+ const elpTarGz = `${repo}/releases/download/${elpVersion}/${elpTarGzFile0}`
30845
+ core.debug(`ELP download URL is '${elpTarGz}'`)
30846
+ return elpTarGz
30847
+ }
30848
+
30831
30849
async function exec_(cmd, args) {
30832
30850
let output = ''
30833
30851
await exec.exec(cmd, args, {
0 commit comments