Chore: change triggering of the detect-breaking-changes Github flow (#43188)

* chore: only run the breaking-changes flow on pull requests

* chore: run the detect-breaking-changes flow on opening a PR

* chore: use

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* Wip

* trying to get workflow split running.

* trying to trigger workflow.

* trying to trigger.

* Splits levitate job into two workflows.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
This commit is contained in:
Levente Balogh
2022-01-03 12:48:12 +01:00
committed by GitHub
parent 1695468de1
commit 8ed5b95f42
6 changed files with 184 additions and 67 deletions

View File

@ -0,0 +1,45 @@
module.exports = async ({ github, context, core, runId, artifactName }) => {
try {
const AdmZip = require('adm-zip');
const fs = require('fs');
const { owner, repo } = context.repo;
const { data } = await github.rest.actions.listWorkflowRunArtifacts({
owner,
repo,
run_id: runId,
});
const artifact = data.artifacts.find(a => a.name === artifactName);
if (!artifact) {
throw new Error(`Could not find artifact ${artifactName} in workflow (${runId})`);
}
const zip = await github.rest.actions.downloadArtifact({
owner,
repo,
artifact_id: artifact.id,
archive_format: "zip",
});
const dir = `./tmp/${artifactName}`;
await mkdirRecursive(fs, dir);
const admZip = new AdmZip(Buffer.from(zip.data));
admZip.extractAllTo(dir, true);
return dir;
} catch (error) {
core.restFailed(error.message);
}
}
async function mkdirRecursive(fs, path) {
return new Promise((resolve, reject) => {
fs.mkdir(path, { recursive: true }, (error) => {
if (error) return reject(error);
return resolve();
});
});
}

View File

@ -0,0 +1,27 @@
module.exports = async ({ core, filePath }) => {
try {
const fs = require('fs');
const content = await readFile(fs, filePath);
const result = JSON.parse(content);
core.startGroup('Parsing json file...');
for (const property in result) {
core.info(`${property} <- ${result[property]}`);
core.setOutput(property, result[property]);
}
core.endGroup();
} catch (error) {
core.restFailed(error.message);
}
}
async function readFile(fs, path) {
return new Promise((resolve, reject) => {
fs.readFile(path, (error, data) => {
if (error) return reject(error);
return resolve(data);
});
});
}

View File

@ -0,0 +1,9 @@
module.exports = async ({ github, context, core }) => {
const { owner, repo } = context.repo;
const url = `https://api.github.com/repos/${owner}/${repo}/actions/runs/${context.runId}/jobs`
const result = await github.request(url)
const link = `https://github.com/grafana/grafana/runs/${result.data.jobs[0].id}?check_suite_focus=true`;
core.setOutput('link', link);
}