setup-python/src/setup-python.ts

36 lines
1.1 KiB
TypeScript
Raw Normal View History

2019-08-20 22:27:52 +08:00
import * as core from '@actions/core';
import * as finder from './find-python';
import * as finderPyPy from './find-pypy';
2019-08-20 22:27:52 +08:00
import * as path from 'path';
import * as os from 'os';
2019-08-20 22:27:52 +08:00
function isPyPyVersion(versionSpec: string) {
return versionSpec.startsWith('pypy-');
}
2019-08-20 22:27:52 +08:00
async function run() {
try {
let version = core.getInput('python-version');
2019-08-20 22:27:52 +08:00
if (version) {
const arch: string = core.getInput('architecture') || os.arch();
if (isPyPyVersion(version)) {
const installed = await finderPyPy.findPyPyVersion(version, arch);
core.info(
`Successfully setup PyPy ${installed.resolvedPyPyVersion} with Python (${installed.resolvedPythonVersion})`
);
} else {
const installed = await finder.findPythonVersion(version, arch);
core.info(
`Successfully setup ${installed.impl} (${installed.version})`
);
}
2019-08-20 22:27:52 +08:00
}
const matchersPath = path.join(__dirname, '..', '.github');
core.info(`##[add-matcher]${path.join(matchersPath, 'python.json')}`);
2019-08-20 22:27:52 +08:00
} catch (err) {
core.setFailed(err.message);
}
}
run();