Skip to content

Commit 7e47213

Browse files
committed
Correct file path for output
1 parent d71a659 commit 7e47213

5 files changed

Lines changed: 320 additions & 124 deletions

File tree

action/dist/action.js

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

action/dist/index.js

Lines changed: 101 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ async function run() {
7070
core.endGroup();
7171
if (success) {
7272
// Find and set outputs
73+
core.info('Searching for output files...');
74+
core.info(`Working directory: ${process.cwd()}`);
75+
core.info(`Course path: ${args.path || 'not set'}`);
7376
const outputFiles = (0, utils_1.findOutputFiles)(args);
77+
core.info(`Found ${outputFiles.length} output files: ${outputFiles.join(', ')}`);
7478
if (outputFiles.length > 0) {
7579
const primaryOutputFile = outputFiles[0];
7680
const fileSize = (0, utils_1.getFileSize)(primaryOutputFile);
@@ -86,6 +90,17 @@ async function run() {
8690
}
8791
else {
8892
core.warning('Export completed but no output files found');
93+
// Debug: List all files in potential output directories
94+
const searchDirs = [process.cwd(), args.path || path.dirname(args.input)];
95+
for (const dir of searchDirs) {
96+
try {
97+
const files = (__nccwpck_require__(9896).readdirSync)(dir);
98+
core.info(`Files in ${dir}: ${files.join(', ')}`);
99+
}
100+
catch (error) {
101+
core.warning(`Could not list files in ${dir}: ${error}`);
102+
}
103+
}
89104
core.setOutput('success', 'false');
90105
}
91106
}
@@ -603,50 +618,96 @@ exports.getFileSize = getFileSize;
603618
* Find output files based on format and output name
604619
*/
605620
function findOutputFiles(args) {
621+
// Search directories - check both working directory and course path
622+
const searchDirs = [
623+
process.cwd(),
624+
args.path || path.dirname(args.input)
625+
].filter((dir, index, arr) => arr.indexOf(dir) === index); // Remove duplicates
626+
core.info(`Searching for output files in directories: ${searchDirs.join(', ')}`);
606627
const outputFiles = [];
607-
const baseDir = process.cwd();
608-
// Common patterns based on format
609-
const patterns = {
610-
'scorm1.2': [`${args.output}.zip`],
611-
'scorm2004': [`${args.output}.zip`],
612-
'pdf': [`${args.output}.pdf`],
613-
'web': args['web-zip'] ? [`${args.output}.zip`] : [`${args.output}/`, `${args.output}`],
614-
'ims': [`${args.output}.zip`],
615-
'xapi': args['xapi-zip'] ? [`${args.output}.zip`] : [`${args.output}/`, `${args.output}`],
616-
'rdf': getRdfOutputPatterns(args),
617-
'json': [`${args.output}.json`],
618-
'project': ['*'] // Project generates multiple files
619-
};
620-
const formatPatterns = patterns[args.format] || [`${args.output}.*`];
621-
for (const pattern of formatPatterns) {
622-
if (pattern === '*') {
623-
// For project format, find all possible generated files
624-
const projectFiles = findProjectOutputFiles(args, baseDir);
625-
outputFiles.push(...projectFiles);
628+
for (const searchDir of searchDirs) {
629+
core.info(`Checking directory: ${searchDir}`);
630+
// Get all files in directory for debugging
631+
try {
632+
const allFiles = fs.readdirSync(searchDir);
633+
core.info(`All files in ${searchDir}: ${allFiles.join(', ')}`);
626634
}
627-
else if (pattern.endsWith('/')) {
628-
// Directory output
629-
const dir = path.join(baseDir, pattern);
630-
if (fs.existsSync(dir) && fs.statSync(dir).isDirectory()) {
631-
outputFiles.push(dir);
632-
}
635+
catch (error) {
636+
core.warning(`Cannot read directory ${searchDir}: ${error}`);
637+
continue;
633638
}
634-
else {
635-
// File output - try exact match first, then with common variations
636-
const variations = [
637-
pattern,
638-
pattern.replace(/\.[^.]*$/, ''),
639-
`${pattern}.zip`,
640-
`${pattern}.pdf`,
641-
`${pattern}.json`
642-
];
643-
for (const variation of variations) {
644-
const file = path.join(baseDir, variation);
645-
if (fs.existsSync(file) && !outputFiles.includes(file)) {
646-
outputFiles.push(file);
647-
break; // Only add the first match for each pattern
639+
// Format-specific file patterns
640+
const outputName = args.output;
641+
switch (args.format) {
642+
case 'scorm1.2':
643+
const scorm1File = path.join(searchDir, `${outputName}-scorm1.2.zip`);
644+
if (fs.existsSync(scorm1File)) {
645+
outputFiles.push(scorm1File);
646+
core.info(`Found SCORM 1.2 file: ${scorm1File}`);
647+
}
648+
break;
649+
case 'scorm2004':
650+
const scorm2004File = path.join(searchDir, `${outputName}-scorm2004.zip`);
651+
if (fs.existsSync(scorm2004File)) {
652+
outputFiles.push(scorm2004File);
653+
core.info(`Found SCORM 2004 file: ${scorm2004File}`);
654+
}
655+
break;
656+
case 'pdf':
657+
const pdfFile = path.join(searchDir, `${outputName}.pdf`);
658+
if (fs.existsSync(pdfFile)) {
659+
outputFiles.push(pdfFile);
660+
core.info(`Found PDF file: ${pdfFile}`);
661+
}
662+
break;
663+
case 'web':
664+
// Web format creates a directory
665+
const webDir = path.join(searchDir, outputName);
666+
if (fs.existsSync(webDir) && fs.statSync(webDir).isDirectory()) {
667+
outputFiles.push(webDir);
668+
core.info(`Found web directory: ${webDir}`);
669+
}
670+
break;
671+
case 'ims':
672+
const imsFile = path.join(searchDir, `${outputName}-ims.zip`);
673+
if (fs.existsSync(imsFile)) {
674+
outputFiles.push(imsFile);
675+
core.info(`Found IMS file: ${imsFile}`);
676+
}
677+
break;
678+
case 'xapi':
679+
const xapiFile = path.join(searchDir, `${outputName}-xapi.zip`);
680+
if (fs.existsSync(xapiFile)) {
681+
outputFiles.push(xapiFile);
682+
core.info(`Found xAPI file: ${xapiFile}`);
683+
}
684+
break;
685+
case 'rdf':
686+
// RDF format depends on rdf-format setting
687+
const rdfPatterns = getRdfOutputPatterns(args);
688+
for (const pattern of rdfPatterns) {
689+
const rdfFile = path.join(searchDir, pattern);
690+
if (fs.existsSync(rdfFile)) {
691+
outputFiles.push(rdfFile);
692+
core.info(`Found RDF file: ${rdfFile}`);
693+
}
694+
}
695+
break;
696+
case 'project':
697+
// Project format is complex, delegate to helper
698+
const projectFiles = findProjectOutputFiles(args, searchDir);
699+
outputFiles.push(...projectFiles);
700+
for (const file of projectFiles) {
701+
core.info(`Found project file: ${file}`);
702+
}
703+
break;
704+
default:
705+
// JSON format or unknown - look for JSON files
706+
const jsonFile = path.join(searchDir, `${outputName}.json`);
707+
if (fs.existsSync(jsonFile)) {
708+
outputFiles.push(jsonFile);
709+
core.info(`Found JSON file: ${jsonFile}`);
648710
}
649-
}
650711
}
651712
}
652713
return outputFiles;

action/dist/utils.js

Lines changed: 86 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

action/src/action.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,12 @@ export async function run(): Promise<void> {
5353

5454
if (success) {
5555
// Find and set outputs
56+
core.info('Searching for output files...');
57+
core.info(`Working directory: ${process.cwd()}`);
58+
core.info(`Course path: ${args.path || 'not set'}`);
59+
5660
const outputFiles = findOutputFiles(args);
61+
core.info(`Found ${outputFiles.length} output files: ${outputFiles.join(', ')}`);
5762

5863
if (outputFiles.length > 0) {
5964
const primaryOutputFile = outputFiles[0];
@@ -72,6 +77,18 @@ export async function run(): Promise<void> {
7277
}
7378
} else {
7479
core.warning('Export completed but no output files found');
80+
81+
// Debug: List all files in potential output directories
82+
const searchDirs = [process.cwd(), args.path || path.dirname(args.input)];
83+
for (const dir of searchDirs) {
84+
try {
85+
const files = require('fs').readdirSync(dir);
86+
core.info(`Files in ${dir}: ${files.join(', ')}`);
87+
} catch (error) {
88+
core.warning(`Could not list files in ${dir}: ${error}`);
89+
}
90+
}
91+
7592
core.setOutput('success', 'false');
7693
}
7794
} else {

0 commit comments

Comments
 (0)