From 627fa7627c7958a6ab1bcf5804d083f32f8d0f78 Mon Sep 17 00:00:00 2001 From: daz Date: Sun, 7 Apr 2024 11:54:02 -0600 Subject: [PATCH] Revert "Provide default config values for dependency-submission" This reverts commit b7ef93c7b71dae2439fcb0c4686dbfa7b986cb63. --- dependency-submission/action.yml | 41 +++++++++++++---------- sources/src/dependency-graph.ts | 24 +++++++------ sources/src/dependency-submission/main.ts | 6 ++-- sources/src/input-params.ts | 10 ++---- 4 files changed, 41 insertions(+), 40 deletions(-) diff --git a/dependency-submission/action.yml b/dependency-submission/action.yml index 9175c1f..2164b0b 100644 --- a/dependency-submission/action.yml +++ b/dependency-submission/action.yml @@ -34,15 +34,6 @@ inputs: Additional arguments to pass to Gradle. For example, `--no-configuration-cache --stacktrace`. required: false - add-job-summary: - description: Specifies when a Job Summary should be inluded in the action results. Valid values are 'never', 'always' (default), and 'on-failure'. - required: false - default: 'always' - add-job-summary-as-pr-comment: - description: Specifies when each Job Summary should be added as a PR comment. Valid values are 'never' (default), 'always', and 'on-failure'. No action will be taken if the workflow was not triggered from a pull request. - required: false - default: 'never' - build-scan-publish: description: | Set to 'true' to automatically publish build results as a Build Scan on scans.gradle.com. @@ -56,6 +47,29 @@ inputs: description: Indicate that you agree to the Build ScanĀ® terms of use. This input value must be "yes". required: false + # HARD-CODED DEFAULTS - These should be removed from here and set directly in code + dependency-graph-continue-on-failure: + required: false + default: false + artifact-retention-days: + required: false + default: 1 + add-job-summary: + required: false + default: 'always' + add-job-summary-as-pr-comment: + required: false + default: 'never' + workflow-job-context: + required: false + default: ${{ toJSON(matrix) }} + github-token: + default: ${{ github.token }} + required: false + cache-disabled: + required: false + default: true + # DEPRECATED ACTION INPUTS build-scan-terms-of-service-url: description: The URL to the Build ScanĀ® terms of use. This input must be set to 'https://gradle.com/terms-of-service'. @@ -67,15 +81,6 @@ inputs: required: false deprecation-message: The input has been renamed to align with the Develocity API. Use 'build-scan-terms-of-use-agree' instead. - # INTERNAL ACTION INPUTS - # These inputs should not be configured directly, and are only used to pass environmental information to the action - workflow-job-context: - required: false - default: ${{ toJSON(matrix) }} - github-token: - default: ${{ github.token }} - required: false - runs: using: 'node20' main: '../dist/dependency-submission/main/index.js' diff --git a/sources/src/dependency-graph.ts b/sources/src/dependency-graph.ts index 01be9e4..a539924 100644 --- a/sources/src/dependency-graph.ts +++ b/sources/src/dependency-graph.ts @@ -16,19 +16,20 @@ import {DependencyGraphConfig, DependencyGraphOption, getGithubToken} from './in const DEPENDENCY_GRAPH_PREFIX = 'dependency-graph_' export async function setup(config: DependencyGraphConfig): Promise { - if (config.dependencyGraphOption === DependencyGraphOption.Disabled) { + const option = config.getDependencyGraphOption() + if (option === DependencyGraphOption.Disabled) { core.exportVariable('GITHUB_DEPENDENCY_GRAPH_ENABLED', 'false') return } // Download and submit early, for compatability with dependency review. - if (config.dependencyGraphOption === DependencyGraphOption.DownloadAndSubmit) { + if (option === DependencyGraphOption.DownloadAndSubmit) { await downloadAndSubmitDependencyGraphs(config) return } core.info('Enabling dependency graph generation') core.exportVariable('GITHUB_DEPENDENCY_GRAPH_ENABLED', 'true') - maybeExportVariable('GITHUB_DEPENDENCY_GRAPH_CONTINUE_ON_FAILURE', config.continueOnFailure) + maybeExportVariable('GITHUB_DEPENDENCY_GRAPH_CONTINUE_ON_FAILURE', config.getDependencyGraphContinueOnFailure()) maybeExportVariable('GITHUB_DEPENDENCY_GRAPH_JOB_CORRELATOR', config.getJobCorrelator()) maybeExportVariable('GITHUB_DEPENDENCY_GRAPH_JOB_ID', github.context.runId) maybeExportVariable('GITHUB_DEPENDENCY_GRAPH_REF', github.context.ref) @@ -40,7 +41,7 @@ export async function setup(config: DependencyGraphConfig): Promise { ) // To clear the dependency graph, we generate an empty graph by excluding all projects and configurations - if (config.dependencyGraphOption === DependencyGraphOption.Clear) { + if (option === DependencyGraphOption.Clear) { core.exportVariable('DEPENDENCY_GRAPH_INCLUDE_PROJECTS', '') core.exportVariable('DEPENDENCY_GRAPH_INCLUDE_CONFIGURATIONS', '') } @@ -58,8 +59,9 @@ export async function complete(config: DependencyGraphConfig): Promise { return } + const option = config.getDependencyGraphOption() try { - switch (config.dependencyGraphOption) { + switch (option) { case DependencyGraphOption.Disabled: case DependencyGraphOption.Generate: // Performed via init-script: nothing to do here case DependencyGraphOption.DownloadAndSubmit: // Performed in setup @@ -72,7 +74,7 @@ export async function complete(config: DependencyGraphConfig): Promise { await uploadDependencyGraphs(await findGeneratedDependencyGraphFiles(), config) } } catch (e) { - warnOrFail(config, e) + warnOrFail(config, option, e) } } @@ -90,7 +92,7 @@ async function uploadDependencyGraphs(dependencyGraphFiles: string[], config: De core.info(`Uploading dependency graph file: ${relativePath}`) const artifactName = `${DEPENDENCY_GRAPH_PREFIX}${path.basename(dependencyGraphFile)}` await artifactClient.uploadArtifact(artifactName, [dependencyGraphFile], workspaceDirectory, { - retentionDays: config.artifactRetentionDays + retentionDays: config.getArtifactRetentionDays() }) } } @@ -104,7 +106,7 @@ async function downloadAndSubmitDependencyGraphs(config: DependencyGraphConfig): try { await submitDependencyGraphs(await downloadDependencyGraphs()) } catch (e) { - warnOrFail(config, e) + warnOrFail(config, DependencyGraphOption.DownloadAndSubmit, e) } } @@ -186,12 +188,12 @@ async function findDependencyGraphFiles(dir: string): Promise { return graphFiles } -function warnOrFail(config: DependencyGraphConfig, error: unknown): void { - if (!config.continueOnFailure) { +function warnOrFail(config: DependencyGraphConfig, option: String, error: unknown): void { + if (!config.getDependencyGraphContinueOnFailure()) { throw new PostActionJobFailure(error) } - core.warning(`Failed to ${config.dependencyGraphOption} dependency graph. Will continue.\n${String(error)}`) + core.warning(`Failed to ${option} dependency graph. Will continue.\n${String(error)}`) } function getOctokit(): InstanceType { diff --git a/sources/src/dependency-submission/main.ts b/sources/src/dependency-submission/main.ts index e48f22b..e9e5110 100644 --- a/sources/src/dependency-submission/main.ts +++ b/sources/src/dependency-submission/main.ts @@ -19,12 +19,9 @@ export async function run(): Promise { // Configure the dependency graph submission const config = new DependencyGraphConfig() - config.artifactRetentionDays = 1 - config.continueOnFailure = false - await dependencyGraph.setup(config) - if (config.dependencyGraphOption === DependencyGraphOption.DownloadAndSubmit) { + if (config.getDependencyGraphOption() === DependencyGraphOption.DownloadAndSubmit) { // No execution to perform return } @@ -43,6 +40,7 @@ export async function run(): Promise { ` const args: string[] = parseArgsStringToArgv(executionArgs) + core.info(args.join('!!!')) const buildRootDirectory = layout.buildRootDirectory() await execution.executeGradleBuild(executable, buildRootDirectory, args) } catch (error) { diff --git a/sources/src/input-params.ts b/sources/src/input-params.ts index 0e03914..6abd784 100644 --- a/sources/src/input-params.ts +++ b/sources/src/input-params.ts @@ -6,11 +6,7 @@ import {SUMMARY_ENV_VAR} from '@actions/core/lib/summary' import {parseArgsStringToArgv} from 'string-argv' export class DependencyGraphConfig { - dependencyGraphOption = this.getDependencyGraphOption() - continueOnFailure = this.getDependencyGraphContinueOnFailure() - artifactRetentionDays = this.getArtifactRetentionDays() - - private getDependencyGraphOption(): DependencyGraphOption { + getDependencyGraphOption(): DependencyGraphOption { const val = core.getInput('dependency-graph') switch (val.toLowerCase().trim()) { case 'disabled': @@ -31,11 +27,11 @@ export class DependencyGraphConfig { ) } - private getDependencyGraphContinueOnFailure(): boolean { + getDependencyGraphContinueOnFailure(): boolean { return getBooleanInput('dependency-graph-continue-on-failure', true) } - private getArtifactRetentionDays(): number { + getArtifactRetentionDays(): number { const val = core.getInput('artifact-retention-days') return parseNumericInput('artifact-retention-days', val, 0) // Zero indicates that the default repository settings should be used