Create multiple workflows for different actions
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import * as core from '@actions/core';
|
||||
import { ScriptCompiler, ScriptCompilerOptions, CompilationError, ICompilationLogger } from 'dcs-script-compiler';
|
||||
|
||||
class Logger implements ICompilationLogger {
|
||||
info(message: string): void {
|
||||
core.info(message);
|
||||
}
|
||||
|
||||
error(message: string): void {
|
||||
core.error(message);
|
||||
}
|
||||
|
||||
writeLine(message: string): void {
|
||||
core.info(message);
|
||||
}
|
||||
}
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
|
||||
const sourceRoot = core.getInput('source-root');
|
||||
if (!sourceRoot) {
|
||||
core.setFailed('Source root is required.');
|
||||
return;
|
||||
}
|
||||
const outputFile = core.getInput('output-file');
|
||||
if (!outputFile) {
|
||||
core.setFailed('Output file path is required.');
|
||||
return;
|
||||
}
|
||||
|
||||
const logger = new Logger();
|
||||
|
||||
const outputFileName = outputFile.split('/').pop() || 'compiled.lua';
|
||||
const outputFolderPath = outputFile.substring(0, outputFile.lastIndexOf('/'));
|
||||
|
||||
const options: ScriptCompilerOptions = {
|
||||
sourcePath: sourceRoot,
|
||||
outputPath: outputFolderPath,
|
||||
outputFileName: outputFileName,
|
||||
minify: false,
|
||||
onError: (error: CompilationError) => {
|
||||
logger.error(`Error in file ${error.filePath} at line ${error.line}: ${error.message}`);
|
||||
core.setFailed(`Compilation error in file ${error.filePath} at line ${error.line}: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
const compiler = new ScriptCompiler(options, logger);
|
||||
await compiler.compile(false);
|
||||
core.info('Compilation completed successfully.');
|
||||
} catch (error) {
|
||||
if (error instanceof Error) {
|
||||
core.setFailed(error.message);
|
||||
} else {
|
||||
core.setFailed('An unknown error occurred.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
Reference in New Issue
Block a user