| module.exports = async ({github, context, core}) => { |
| try { |
| const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| run_id: context.payload.workflow_run.id, |
| }); |
| |
| const matchArtifact = artifacts.data.artifacts.find((artifact) => { |
| return artifact.name == "benchmark-results"; |
| }); |
| |
| if (!matchArtifact) { |
| core.setFailed("No artifact named 'benchmark-results' found."); |
| return; |
| } |
| |
| const download = await github.rest.actions.downloadArtifact({ |
| owner: context.repo.owner, |
| repo: context.repo.repo, |
| artifact_id: matchArtifact.id, |
| archive_format: 'zip', |
| }); |
| |
| const fs = require('fs'); |
| const path = require('path'); |
| const workspace = process.env.GITHUB_WORKSPACE; |
| fs.writeFileSync(path.join(workspace, 'benchmark-results.zip'), Buffer.from(download.data)); |
| } catch (error) { |
| core.setFailed(`Failed to download artifact: ${error.message}`); |
| } |
| }; |