mirror of
https://code.forgejo.org/actions/download-artifact.git
synced 2024-12-23 20:50:07 +01:00
feat: enable ignore option when no artifact is found
This commit is contained in:
parent
e9ef242655
commit
808bacee91
3 changed files with 21 additions and 2 deletions
|
@ -8,6 +8,10 @@ inputs:
|
|||
path:
|
||||
description: 'Destination path'
|
||||
required: false
|
||||
if-no-artifact:
|
||||
description: 'How to exit action if no artifact is found. Can be fail, warn or ignore'
|
||||
default: 'fail'
|
||||
required: false
|
||||
outputs:
|
||||
download-path:
|
||||
description: 'Path of artifact download'
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
export enum Inputs {
|
||||
Name = 'name',
|
||||
Path = 'path'
|
||||
Path = 'path',
|
||||
IfNoArtifact = 'if-no-artifact'
|
||||
}
|
||||
export enum Outputs {
|
||||
DownloadPath = 'download-path'
|
||||
|
|
|
@ -5,9 +5,12 @@ import {resolve} from 'path'
|
|||
import {Inputs, Outputs} from './constants'
|
||||
|
||||
async function run(): Promise<void> {
|
||||
let ifNoArtifact = ''
|
||||
try {
|
||||
const name = core.getInput(Inputs.Name, {required: false})
|
||||
const path = core.getInput(Inputs.Path, {required: false})
|
||||
ifNoArtifact =
|
||||
core.getInput(Inputs.IfNoArtifact, {required: false}) || 'fail'
|
||||
|
||||
let resolvedPath
|
||||
// resolve tilde expansions, path.replace only replaces the first occurrence of a pattern
|
||||
|
@ -54,7 +57,18 @@ async function run(): Promise<void> {
|
|||
core.setOutput(Outputs.DownloadPath, resolvedPath)
|
||||
core.info('Artifact download has finished successfully')
|
||||
} catch (err) {
|
||||
core.setFailed(err.message)
|
||||
const {message} = err as Error
|
||||
switch (ifNoArtifact) {
|
||||
case 'warn':
|
||||
core.warning(message)
|
||||
break
|
||||
case 'ignore':
|
||||
core.info(message)
|
||||
break
|
||||
case 'fail':
|
||||
default:
|
||||
core.setFailed(message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue