Remove retry logic (#389)
The retries make debugging strictly more complex, and it's not clear that retrying provides actual value. If we need retries in the future, we should push them down into the per-API level.
This commit is contained in:
parent
5a50e58116
commit
39c96a3f1d
10
action.yml
10
action.yml
@ -132,24 +132,28 @@ inputs:
|
||||
default: ''
|
||||
required: false
|
||||
|
||||
# retries
|
||||
# retries - TODO - remove in v3.0
|
||||
retries:
|
||||
description: |-
|
||||
Number of times to retry a failed authentication attempt. This is useful
|
||||
for automated pipelines that may execute before IAM permissions are fully
|
||||
propogated.
|
||||
default: '3'
|
||||
deprecationMessage: |-
|
||||
This field is no longer used and will be removed in a future release.
|
||||
required: false
|
||||
backoff:
|
||||
description: |-
|
||||
Delay time before trying another authentication attempt. This is
|
||||
implemented using a fibonacci backoff method (e.g. 1-1-2-3-5). The default
|
||||
value is 250 milliseconds.
|
||||
default: '250'
|
||||
deprecationMessage: |-
|
||||
This field is no longer used and will be removed in a future release.
|
||||
required: false
|
||||
backoff_limit:
|
||||
description: |-
|
||||
Limits the retry backoff to the specified value.
|
||||
deprecationMessage: |-
|
||||
This field is no longer used and will be removed in a future release.
|
||||
required: false
|
||||
|
||||
# id token params
|
||||
|
6
dist/main/index.js
vendored
6
dist/main/index.js
vendored
File diff suppressed because one or more lines are too long
6
dist/post/index.js
vendored
6
dist/post/index.js
vendored
File diff suppressed because one or more lines are too long
42
src/main.ts
42
src/main.ts
@ -31,7 +31,6 @@ import {
|
||||
parseMultilineCSV,
|
||||
parseDuration,
|
||||
pinnedToHeadWarning,
|
||||
withRetries,
|
||||
} from '@google-github-actions/actions-utils';
|
||||
|
||||
import {
|
||||
@ -59,41 +58,13 @@ const oidcWarning =
|
||||
`GitHub Actions workflow permissions are incorrect, or this job is being ` +
|
||||
`run from a fork. For more information, please see https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token`;
|
||||
|
||||
/**
|
||||
* Executes the main action.
|
||||
*/
|
||||
async function run(): Promise<void> {
|
||||
const logger = new Logger();
|
||||
|
||||
export async function run(logger: Logger) {
|
||||
// Warn if pinned to HEAD
|
||||
if (isPinnedToHead()) {
|
||||
logger.warning(pinnedToHeadWarning('v2'));
|
||||
}
|
||||
|
||||
const retries = Number(getInput('retries'));
|
||||
|
||||
// set to undefined when not provided [avoids Number('') -> 0]
|
||||
const backoff = Number(getInput('backoff')) || undefined;
|
||||
const backoffLimit = Number(getInput('backoff_limit')) || undefined;
|
||||
|
||||
try {
|
||||
const mainWithRetries = withRetries(async () => main(logger), {
|
||||
retries: retries,
|
||||
backoff: backoff,
|
||||
backoffLimit: backoffLimit,
|
||||
});
|
||||
|
||||
await mainWithRetries();
|
||||
} catch (err) {
|
||||
const msg = errorMessage(err);
|
||||
setFailed(`google-github-actions/auth failed with: ${msg}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Main wraps the main action logic into a function to be used as a parameter to the withRetries function.
|
||||
*/
|
||||
async function main(logger: Logger) {
|
||||
// Load configuration.
|
||||
const projectID = computeProjectID(
|
||||
getInput(`project_id`),
|
||||
@ -303,7 +274,8 @@ async function main(logger: Logger) {
|
||||
);
|
||||
const signedJWT = await client.signJWT(unsignedJWT);
|
||||
|
||||
accessToken = await iamCredentialsClient.generateDomainWideDelegationAccessToken(signedJWT);
|
||||
accessToken =
|
||||
await iamCredentialsClient.generateDomainWideDelegationAccessToken(signedJWT);
|
||||
} else {
|
||||
accessToken = await iamCredentialsClient.generateAccessToken({
|
||||
serviceAccount,
|
||||
@ -346,6 +318,12 @@ async function main(logger: Logger) {
|
||||
throw new Error(`Unknown token format "${tokenFormat}"`);
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
const msg = errorMessage(err);
|
||||
setFailed(`google-github-actions/auth failed with: ${msg}`);
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
if (require.main === module) {
|
||||
run(new Logger());
|
||||
}
|
||||
|
23
src/post.ts
23
src/post.ts
@ -18,21 +18,8 @@ import { errorMessage, forceRemove } from '@google-github-actions/actions-utils'
|
||||
|
||||
import { Logger } from './logger';
|
||||
|
||||
/**
|
||||
* Executes the post action, documented inline.
|
||||
*/
|
||||
export async function run() {
|
||||
const logger = new Logger();
|
||||
|
||||
export async function run(logger: Logger) {
|
||||
try {
|
||||
main(logger);
|
||||
} catch (err) {
|
||||
const msg = errorMessage(err);
|
||||
setFailed(`google-github-actions/auth post failed with: ${msg}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function main(logger: Logger) {
|
||||
const createCredentials = getBooleanInput('create_credentials_file');
|
||||
if (!createCredentials) {
|
||||
logger.info(`Skipping credential cleanup - "create_credentials_file" is false.`);
|
||||
@ -58,6 +45,12 @@ async function main(logger: Logger) {
|
||||
// Remove the file.
|
||||
await forceRemove(credentialsPath);
|
||||
logger.info(`Removed exported credentials at "${credentialsPath}".`);
|
||||
} catch (err) {
|
||||
const msg = errorMessage(err);
|
||||
setFailed(`google-github-actions/auth post failed with: ${msg}`);
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
if (require.main === module) {
|
||||
run(new Logger());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user