module.exports = async ({ github, context, core, jobId, name }) => { const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ owner: context.repo.owner, repo: context.repo.repo, run_id: jobId, }); if (artifacts.data.total_count === 0) { core.setFailed("No artifacts found for jobID: " + jobId); return false; } const artifact = artifacts.data.artifacts.find( (artifact) => artifact.name === name ); if (!artifact) { core.setFailed(`${name} not found in artifacts`); return false; } const response = await github.rest.actions.downloadArtifact({ owner: context.repo.owner, repo: context.repo.repo, artifact_id: artifact.id, archive_format: "zip" }); require('fs').writeFileSync(`${name}.zip`, Buffer.from(response.data)); require('fs').mkdirSync(`./${jobId}/${name}`, { recursive: true }); require('child_process').execSync(`unzip -o ${name}.zip -d ./${jobId}/${name}`); };