feat: add support for restricting the deleted files output to only deleted directories

This commit is contained in:
Tonye Jack
2023-09-21 20:47:12 -06:00
parent 0b947ed818
commit e6ce728d79
5 changed files with 71 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
import * as core from '@actions/core'
import path from 'path'
import {
ChangedFiles,
ChangeTypeEnum,
@@ -6,7 +7,7 @@ import {
getChangeTypeFiles
} from './changedFiles'
import {Inputs} from './inputs'
import {getOutputKey, setArrayOutput, setOutput} from './utils'
import {getOutputKey, setArrayOutput, setOutput, exists} from './utils'
const getArrayFromPaths = (
paths: string | string[],
@@ -20,13 +21,15 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
allFilteredDiffFiles,
inputs,
filePatterns = [],
outputPrefix = ''
outputPrefix = '',
workingDirectory
}: {
allDiffFiles: ChangedFiles
allFilteredDiffFiles: ChangedFiles
inputs: Inputs
filePatterns?: string[]
outputPrefix?: string
workingDirectory?: string
}): Promise<{anyModified: boolean; anyChanged: boolean}> => {
const addedFiles = await getChangeTypeFiles({
inputs,
@@ -388,6 +391,22 @@ export const setOutputsAndGetModifiedAndChangedFilesStatus = async ({
changeTypes: [ChangeTypeEnum.Deleted]
})
core.debug(`Deleted files: ${JSON.stringify(deletedFiles)}`)
if (
inputs.dirNamesDeletedFilesIncludeOnlyDeletedDirs &&
inputs.dirNames &&
workingDirectory
) {
const deletedFilesPaths: string[] = []
for (const deletedPath of getArrayFromPaths(deletedFiles.paths, inputs)) {
if (!(await exists(path.join(workingDirectory, deletedPath)))) {
deletedFilesPaths.push(deletedPath)
}
}
deletedFiles.paths = deletedFilesPaths
deletedFiles.count = deletedFilesPaths.length.toString()
}
await setOutput({
key: getOutputKey('deleted_files', outputPrefix),
value: deletedFiles.paths,