files
- Path to a file with the placeholders, multiple files, or a directory. If using a directory, all files in the directory will be processed. Glob patterns may be used.
prefix
- Placeholder prefix/suffix. All placeholders are assumed to be contained within
{ }
, with an additional prefix/suffix, e.g.#{myVar}#
,${myVar}$
. In these cases, the prefix value would be#
or$
respectively. - Optional, defaults to
#
- Placeholder prefix/suffix. All placeholders are assumed to be contained within
omit-suffix
- Only use a prefix for the placeholder, do not include a suffix, e.g.
#{myVar}
. Leave this at false for any placeholder containing punctuation, otherwise the placeholder will not be correctly identified. - Optional, defaults to
false
- Only use a prefix for the placeholder, do not include a suffix, e.g.
For JSON files, the keys being passed in must reflect the casing of the JSON path that needs to be updated.
For other files, values to replace the placeholders must have the same name as the placeholder, but in UPPERCASE. The casing of the placeholders themselves is not important. Hyphens should not be used, instead, use underscores.
The workflow for a non-JSON file:
name: My actions
uses: /sainsburys-tech/eo-gitaction-replace@v2
env:
SPECIALFILEPATH: "whatever"
SOMETHING_ELSE: "something special"
with:
files: path/to/a/file.txt
The file
:
env:
path: #{specialFilePath}#,
other: #{something_else}#
The result:
env:
path: whatever
other: something special
The workflow for a JSON file:
name: My actions
uses: /sainsburys-tech/eo-gitaction-replace@v2
env:
AksSettings.Replicas: 3
MongoDbSettings.DatabaseName: MyShinyDb
SomethingElse: wibble
with:
files: path/to/a/file.json
The file
:
{
"AksSettings": {
"Replicas": "*"
},
"MongoDbSettings": {
"DatabaseName": "*"
},
"SomethingElse": "*"
}
The result:
{
"AksSettings": {
"Replicas": "3"
},
"MongoDbSettings": {
"DatabaseName": "MyShinyDb"
},
"SomethingElse": "wibble"
}
files
can be any combination of yaml/JSON files. The env
values must reflect the files being passed in, e.g:
env:
PLACEHOLDER_IN_TEXT_FILE: some value
PlaceHolder.In.Json.File: some other value
files
can also be specified as follows:
with:
files: |-
fileone.yml
filetwo.json
Dockerfile
with:
files: path/to/a/directory
with:
files: "dist/**/*.js"
If you make any changes to replace/index.js, you will need to recompile the code for it to work as a called action.
Execute the following from the folder containing packages.json
npm i -g @vercel/ncc
ncc build index.js --license licenses.txt