Fix a bug where our new timeout caused the action to stay "alive" (#173)

This commit is contained in:
Jack Boswell
2023-02-11 12:06:30 +13:00
committed by GitHub
parent 9a5e7fcdd5
commit 853233422d
5 changed files with 141 additions and 18 deletions

View File

@@ -1,8 +1,9 @@
import * as core from '@actions/core';
import * as fs from "fs";
import { runUpload } from "./edits";
import * as core from '@actions/core'
import * as fs from "fs"
import { runUpload } from "./edits"
import { validateInAppUpdatePriority, validateReleaseFiles, validateStatus, validateUserFraction } from "./input-validation"
import { unlink, writeFile } from 'fs/promises';
import { unlink, writeFile } from 'fs/promises'
import pTimeout from 'p-timeout'
export async function run() {
try {
@@ -65,8 +66,7 @@ export async function run() {
core.warning(`Unable to find 'debugSymbols' @ ${debugSymbols}`);
}
await withTimeout(
3.6e+6, // 60 minute timeout
await pTimeout(
runUpload(
packageName,
track,
@@ -80,7 +80,10 @@ export async function run() {
existingEditId,
status,
validatedReleaseFiles
)
),
{
milliseconds: 3.6e+6
}
)
} catch (error: unknown) {
if (error instanceof Error) {
@@ -119,11 +122,4 @@ async function validateServiceAccountJson(serviceAccountJsonRaw: string | undefi
}
}
async function withTimeout<T>(timeoutMillis: number, promise: Promise<T>): Promise<T> {
return Promise.race([
new Promise<never>((_, reject) => setTimeout(reject, timeoutMillis)),
promise
])
}
void run();