Skip to content

Commit 97ba1bf

Browse files
committed
#1 - Changes to actions according to code review
Signed-off-by: Gregor Anders <[email protected]>
1 parent f9b23ae commit 97ba1bf

File tree

2 files changed

+33
-46
lines changed

2 files changed

+33
-46
lines changed

.github/actions/create-release/index.ts

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ import { context, GitHub } from "@actions/github";
33

44
import * as Octokit from "@octokit/rest";
55

6+
type IResponse = Octokit.Response<Octokit.ReposGetLatestReleaseResponse | Octokit.ReposCreateReleaseResponse>;
7+
68
async function run(): Promise<void> {
7-
const tag: string = core.getInput("tag", {required: true});
8-
const name: string = core.getInput("name", {required: true});
9+
const tag: string = core.getInput("tag", { required: true });
10+
const name: string = core.getInput("name", { required: true });
911
const body: string = core.getInput("body");
1012
const draft: boolean = core.getInput("draft") === "true";
1113
const prerelease: boolean = core.getInput("prerelease") === "true";
@@ -20,22 +22,17 @@ async function run(): Promise<void> {
2022

2123
const github: GitHub = new GitHub(process.env.GITHUB_TOKEN);
2224

23-
let releaseID: number = -1;
24-
let releaseURL: string = "";
25-
let releaseUploadURL: string = "";
25+
let response: undefined | IResponse;
2626

2727
try {
28-
const response: Octokit.Response<Octokit.ReposGetLatestReleaseResponse> = await github.repos.getReleaseByTag({
28+
response = await github.repos.getReleaseByTag({
2929
owner,
3030
repo,
3131
tag,
3232
});
33-
releaseID = response.data.id;
34-
releaseURL = response.data.html_url;
35-
releaseUploadURL = response.data.upload_url;
3633
} catch (error) {
3734
try {
38-
const response: Octokit.Response<Octokit.ReposCreateReleaseResponse> = await github.repos.createRelease({
35+
response = await github.repos.createRelease({
3936
body,
4037
draft,
4138
name,
@@ -45,34 +42,18 @@ async function run(): Promise<void> {
4542
tag_name: tag,
4643
target_commitish,
4744
});
48-
49-
releaseID = response.data.id;
50-
releaseURL = response.data.html_url;
51-
releaseUploadURL = response.data.assets_url;
5245
} catch (createError) {
53-
core.setFailed("Error");
54-
return;
46+
core.setFailed("Error: " + JSON.stringify(createError));
5547
}
5648
}
5749

58-
if (releaseID < 0) {
59-
core.setFailed("Invalid release id " + releaseID);
60-
return;
61-
}
62-
63-
if (!releaseURL || !releaseURL.length) {
64-
core.setFailed("Invalid release URL");
65-
return;
50+
if (response) {
51+
core.setOutput("id", response.data.id.toString());
52+
core.setOutput("url", response.data.html_url);
53+
core.setOutput("upload_url", response.data.upload_url);
54+
} else {
55+
core.setFailed("Invalid release");
6656
}
67-
68-
if (!releaseUploadURL || !releaseUploadURL.length) {
69-
core.setFailed("Invalid release URL");
70-
return;
71-
}
72-
73-
core.setOutput("id", releaseID.toString());
74-
core.setOutput("url", releaseURL);
75-
core.setOutput("upload_url", releaseUploadURL);
7657
}
7758

7859
run();

.github/actions/upload-asset/index.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ import * as fs from "fs";
77
import { getType } from "mime";
88
import * as path from "path";
99

10+
async function upload(github: GitHub, filePath: fs.PathLike,
11+
name: string, url: string): Promise<Octokit.ReposUploadReleaseAssetResponseValue> {
12+
const headers: Octokit.ReposUploadReleaseAssetParamsHeaders = {
13+
"content-length": fs.statSync(filePath).size,
14+
"content-type": getType(filePath.toString()) || "application/zip",
15+
};
16+
17+
const response: Octokit.Response<Octokit.ReposUploadReleaseAssetResponse> = await github.repos.uploadReleaseAsset({
18+
file: fs.readFileSync(filePath),
19+
headers,
20+
name,
21+
url,
22+
});
23+
24+
return response.data as any;
25+
}
26+
1027
async function run(): Promise<void> {
1128
const assetUploadURL: string = core.getInput("url", {required: true});
1229
const assetName: string = core.getInput("name", {required: true});
@@ -26,19 +43,8 @@ async function run(): Promise<void> {
2643
}
2744

2845
try {
29-
const headers: Octokit.ReposUploadReleaseAssetParamsHeaders = {
30-
"content-length": fs.statSync(fullPathChecked).size,
31-
"content-type": getType(fullPathChecked) || "application/zip",
32-
};
33-
34-
const response: Octokit.Response<Octokit.ReposUploadReleaseAssetResponse> = await github.repos.uploadReleaseAsset({
35-
file: fs.readFileSync(fullPathChecked),
36-
headers,
37-
name: assetName,
38-
url: assetUploadURL,
39-
});
40-
41-
const data: Octokit.ReposUploadReleaseAssetResponseValue = response.data as any;
46+
const data: Octokit.ReposUploadReleaseAssetResponseValue
47+
= await upload(github, fullPathChecked, assetName, assetUploadURL);
4248

4349
core.setOutput("url", data.browser_download_url);
4450
} catch (error) {

0 commit comments

Comments
 (0)