Merge pull request #9312 from backstage/rugvip/release-dispatch
scripts/create-release-tag: dispatch release workflows
This commit is contained in:
@@ -25,31 +25,17 @@ const baseOptions = {
|
||||
repo: 'backstage',
|
||||
};
|
||||
|
||||
async function main() {
|
||||
const { GITHUB_SHA, GITHUB_TOKEN } = process.env;
|
||||
if (!GITHUB_SHA) {
|
||||
throw new Error('GITHUB_SHA is not set');
|
||||
}
|
||||
if (!GITHUB_TOKEN) {
|
||||
throw new Error('GITHUB_TOKEN is not set');
|
||||
}
|
||||
|
||||
const octokit = new Octokit({ auth: GITHUB_TOKEN });
|
||||
|
||||
const rootPath = path.resolve(__dirname, '..');
|
||||
const { version: currentVersion } = await fs.readJson(
|
||||
path.join(rootPath, 'package.json'),
|
||||
);
|
||||
|
||||
const tagName = `v${currentVersion}`;
|
||||
|
||||
console.log(`Creating release tag ${tagName}`);
|
||||
async function getCurrentReleaseTag() {
|
||||
const rootPath = path.resolve(__dirname, '../package.json');
|
||||
return fs.readJson(rootPath).then(_ => _.version);
|
||||
}
|
||||
|
||||
async function createGitTag(octokit, commitSha, tagName) {
|
||||
const annotatedTag = await octokit.git.createTag({
|
||||
...baseOptions,
|
||||
tag: tagName,
|
||||
message: tagName,
|
||||
object: GITHUB_SHA,
|
||||
object: commitSha,
|
||||
type: 'commit',
|
||||
});
|
||||
|
||||
@@ -69,8 +55,46 @@ async function main() {
|
||||
console.error(`Tag creation for ${tagName} failed`);
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
async function dispatchReleaseWorkflows(octokit, releaseVersion) {
|
||||
console.log('Dispatching release manifest sync');
|
||||
await octokit.actions.createWorkflowDispatch({
|
||||
owner: 'backstage',
|
||||
repo: 'backstage',
|
||||
workflow_id: 'sync_release-manifest.yml',
|
||||
ref: 'master',
|
||||
inputs: {
|
||||
version: releaseVersion,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const shouldDispatch = process.argv.includes('--dispatch-workflows');
|
||||
|
||||
if (!process.env.GITHUB_SHA) {
|
||||
throw new Error('GITHUB_SHA is not set');
|
||||
}
|
||||
if (!process.env.GITHUB_TOKEN) {
|
||||
throw new Error('GITHUB_TOKEN is not set');
|
||||
}
|
||||
|
||||
const commitSha = process.env.GITHUB_SHA;
|
||||
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
|
||||
|
||||
const releaseVersion = await getCurrentReleaseTag();
|
||||
const tagName = `v${releaseVersion}`;
|
||||
|
||||
console.log(`Creating release tag ${tagName} at ${commitSha}`);
|
||||
await createGitTag(octokit, commitSha, tagName);
|
||||
|
||||
console.log(`::set-output name=tag_name::${tagName}`);
|
||||
|
||||
if (shouldDispatch) {
|
||||
console.log(`Dispatching release workflows for ${tagName}`);
|
||||
await dispatchReleaseWorkflows(octokit, releaseVersion);
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(error => {
|
||||
|
||||
Reference in New Issue
Block a user