mirror of
https://github.com/Azure/k8s-deploy.git
synced 2026-06-27 15:19:27 +08:00
Supporting Multiple Files With the Same Name (#327)
* changed ubuntu runner
* changed minikube action
* Version formatting
* nonedriveR
* update kube version
* installing conntrack'
* updated other actions
* update bg ingress api version
* prettify
* updated ingress backend for new api version
* Added path type
* prettify
* added logging
* added try catch logic to prevent future failures if annotations fail since failing annotations shouldn't affect users
* added nullcheck
* Added fallback filename if workflow fails to get github filepath due to runner issues
* cleanup
* added oliver's feedback + unit test demonstrating regex glitch and fix
* no longer using blank string for failed regex
* add tests and dont split so much
* testing
* file fix
* without fix
* Revert "without fix"
This reverts commit 8da79a8190.
* fixing labels test
* pretty
* refactored getting tmp filename to use entire path, and refactored private to use filepath relative to tmp dir
* wip
* merging master
* this should fail
* added UTs
* restructured plus UTs plus debug logs
* resolved dir not existing and UTs
* cleanup
* no silent failure
* Reverting private logic
* this might work
* root level files for temp... bizarre issue
* need to actually write contents
* no more cwdir
* moving everything out of temp
* deleting unused function
* supporting windows filepaths for private cluster shallow path generation
---------
Co-authored-by: David Gamero <david340804@gmail.com>
This commit is contained in:
@@ -3,7 +3,7 @@ import * as fs from 'fs'
|
||||
import * as yaml from 'js-yaml'
|
||||
import * as path from 'path'
|
||||
import * as fileHelper from './fileUtils'
|
||||
import {getTempDirectory} from './fileUtils'
|
||||
import {moveFileToTmpDir} from './fileUtils'
|
||||
import {
|
||||
InputObjectKindNotDefinedError,
|
||||
InputObjectMetadataNotDefinedError,
|
||||
@@ -26,10 +26,14 @@ export function updateManifestFiles(manifestFilePaths: string[]) {
|
||||
throw new Error('Manifest files not provided')
|
||||
}
|
||||
|
||||
// move original set of input files to tmp dir
|
||||
const manifestFilesInTempDir = moveFilesToTmpDir(manifestFilePaths)
|
||||
|
||||
// update container images
|
||||
const containers: string[] = core.getInput('images').split('\n')
|
||||
|
||||
const manifestFiles = updateContainerImagesInManifestFiles(
|
||||
manifestFilePaths,
|
||||
manifestFilesInTempDir,
|
||||
containers
|
||||
)
|
||||
|
||||
@@ -41,6 +45,12 @@ export function updateManifestFiles(manifestFilePaths: string[]) {
|
||||
return updateImagePullSecretsInManifestFiles(manifestFiles, imagePullSecrets)
|
||||
}
|
||||
|
||||
export function moveFilesToTmpDir(filepaths: string[]): string[] {
|
||||
return filepaths.map((filename) => {
|
||||
return moveFileToTmpDir(filename)
|
||||
})
|
||||
}
|
||||
|
||||
export function UnsetClusterSpecificDetails(resource: any) {
|
||||
if (!resource) {
|
||||
return
|
||||
@@ -70,12 +80,9 @@ function updateContainerImagesInManifestFiles(
|
||||
): string[] {
|
||||
if (filePaths?.length <= 0) return filePaths
|
||||
|
||||
const newFilePaths = []
|
||||
|
||||
// update container images
|
||||
filePaths.forEach((filePath: string) => {
|
||||
let contents = fs.readFileSync(filePath).toString()
|
||||
|
||||
containers.forEach((container: string) => {
|
||||
let [imageName] = container.split(':')
|
||||
if (imageName.indexOf('@') > 0) {
|
||||
@@ -91,13 +98,10 @@ function updateContainerImagesInManifestFiles(
|
||||
})
|
||||
|
||||
// write updated files
|
||||
const tempDirectory = getTempDirectory()
|
||||
const fileName = path.join(tempDirectory, path.basename(filePath))
|
||||
fs.writeFileSync(path.join(fileName), contents)
|
||||
newFilePaths.push(fileName)
|
||||
fs.writeFileSync(path.join(filePath), contents)
|
||||
})
|
||||
|
||||
return newFilePaths
|
||||
return filePaths
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user