Support custom target_commitish value (#76)

* Make target_commitish configurable

* Store compiled action for testing

* Add target_commitish to metadata

* Allow override of target_commitish for updating

* Print commit usage

* Improve message for commit usage

* Update draft releases too

* Revert "Update draft releases too"

This reverts commit ff30f8edb1.

* Integrate latest changes from upstream.
This commit is contained in:
Thomas Piskol 2021-05-03 02:43:58 +02:00 committed by softprops
parent 674bcd2d67
commit 2934fce629
6 changed files with 95 additions and 41 deletions

View file

@ -35,6 +35,7 @@ export interface Releaser {
body: string | undefined;
draft: boolean | undefined;
prerelease: boolean | undefined;
target_commitish: string | undefined;
}): Promise<{ data: Release }>;
updateRelease(params: {
@ -77,6 +78,7 @@ export class GitHubReleaser implements Releaser {
body: string | undefined;
draft: boolean | undefined;
prerelease: boolean | undefined;
target_commitish: string | undefined;
}): Promise<{ data: Release }> {
return this.github.repos.createRelease(params);
}
@ -165,7 +167,18 @@ export const release = async (
});
const release_id = existingRelease.data.id;
const target_commitish = existingRelease.data.target_commitish;
let target_commitish: string;
if (
config.input_target_commitish &&
config.input_target_commitish !== existingRelease.data.target_commitish
) {
console.log(
`Updating commit from "${existingRelease.data.target_commitish}" to "${config.input_target_commitish}"`
);
target_commitish = config.input_target_commitish;
} else {
target_commitish = existingRelease.data.target_commitish;
}
const tag_name = tag;
const name = config.input_name || tag;
const body = `${existingRelease.data.body}\n${releaseBody(config)}`;
@ -191,7 +204,14 @@ export const release = async (
const body = releaseBody(config);
const draft = config.input_draft;
const prerelease = config.input_prerelease;
console.log(`👩‍🏭 Creating new GitHub release for tag ${tag_name}...`);
const target_commitish = config.input_target_commitish;
let commitMessage: string = "";
if (target_commitish) {
commitMessage = ` using commit "${target_commitish}"`;
}
console.log(
`👩‍🏭 Creating new GitHub release for tag ${tag_name}${commitMessage}...`
);
try {
let release = await releaser.createRelease({
owner,
@ -200,7 +220,8 @@ export const release = async (
name,
body,
draft,
prerelease
prerelease,
target_commitish
});
return release.data;
} catch (error) {