mirror of
https://github.com/actions/github-script.git
synced 2026-02-07 19:47:26 +00:00
Added se functions
This commit is contained in:
parent
d556feaca3
commit
7f0bee3df8
2 changed files with 62 additions and 0 deletions
|
|
@ -19,6 +19,7 @@ The following arguments will be provided:
|
|||
- `io` A reference to the [@actions/io](https://github.com/actions/toolkit/tree/main/packages/io) package
|
||||
- `exec` A reference to the [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec) package
|
||||
- `require` A proxy wrapper around the normal Node.js `require` to enable
|
||||
- 'se' A library for resusbale functions
|
||||
requiring relative paths (relative to the current working directory) and
|
||||
requiring npm packages installed in the current working directory. If for
|
||||
some reason you need the non-wrapped `require`, there is an escape hatch
|
||||
|
|
|
|||
61
src/se.ts
Normal file
61
src/se.ts
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
|
||||
|
||||
export function createMetaJson(): string[] {
|
||||
return createMetaJson('./')
|
||||
}
|
||||
|
||||
export function createMetaJson(root: string): string[] {
|
||||
var fs = require('fs');
|
||||
const execSync = require('child_process').execSync;
|
||||
|
||||
const xmllint = execSync('sudo apt install libxml2-utils', { shell: '/bin/bash' });
|
||||
console.log(xmllint.toString());
|
||||
var command = `#!/bin/bash
|
||||
cd ` + root + `
|
||||
find . -name 'pom.xml' -type f > ` + root + `poms.txt
|
||||
`;
|
||||
const output = execSync(command, { shell: '/bin/bash' });
|
||||
console.log(output.toString());
|
||||
|
||||
var poms = fs.readFileSync(root + 'poms.txt', 'utf8').toString();
|
||||
var ownersFile = fs.readFileSync(root + '.github/CODEOWNERS', 'utf8').toString();
|
||||
for (const pomRaw of poms.split('\n')) {
|
||||
var pom = pomRaw.replace("\.\/", "/");
|
||||
var name = pom.split("/")[2];
|
||||
if (pom.startsWith("/components") && pom.indexOf(name + "-deployment/") > -1) {
|
||||
var xml = fs.readFileSync(pomRaw, 'utf8');
|
||||
var owners = [];
|
||||
var reviewers = [];
|
||||
for (const ownerRaw of ownersFile.split('\n')) {
|
||||
var path = ownerRaw.split(' ')[0];
|
||||
|
||||
if (path.length > 3 && ownerRaw.indexOf(' @') > -1 && pom.startsWith(path)) {
|
||||
owners.push(ownerRaw.split(' ')[1])
|
||||
reviewers.push(ownerRaw.split(' ')[1])
|
||||
}
|
||||
}
|
||||
var gid = `#!/bin/bash
|
||||
cd ` + root + `
|
||||
xmllint --xpath "/*[local-name()='project']/*[local-name()='groupId']/text()" ` + pom + `
|
||||
`
|
||||
var aid = `#!/bin/bash
|
||||
cd ` + root + `
|
||||
xmllint --xpath "/*[local-name()='project']/*[local-name()='artifactId']/text()" ` + pom + `
|
||||
`
|
||||
const groupId = execSync(gid, { shell: '/bin/bash' }).toString();
|
||||
console.log(groupId);
|
||||
const artifactId = execSync(aid, { shell: '/bin/bash' }).toString();
|
||||
console.log(artifactId);
|
||||
var meta = {};
|
||||
meta['manifestSource'] = pom.replace("/pom.xml", "").substring(1);
|
||||
meta['manifestTarget'] = "helm-chart/components/charts/" + name + "/" + name + "-deployment/templates/";
|
||||
meta['owners'] = owners;
|
||||
meta['reviewers'] = reviewers;
|
||||
meta['branchName'] = name + "-deployment";
|
||||
meta['mavenGroupId'] = groupId.trim();
|
||||
meta['mavenArtifactId'] = artifactId.trim();
|
||||
console.log(JSON.stringify(meta));
|
||||
fs.writeFileSync(root + pomRaw.replace("/pom.xml", "/meta.json").substring(1), JSON.stringify(meta));
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue