File tree 5 files changed +22
-6
lines changed
5 files changed +22
-6
lines changed Original file line number Diff line number Diff line change 7
7
name : A test job to read a value from json as a variable
8
8
steps :
9
9
- name : Checkout
10
- uses : actions/checkout@v3
10
+ uses : actions/checkout@v4
11
11
- name : Read a json file
12
12
uses : ./
13
13
id : read
14
14
with :
15
15
input-file : ' package.json'
16
16
input-property : ' author.name' # Exp: 'fiddlermikey'
17
+ - name : Read a json file
18
+ uses : ./
19
+ id : read-nofail
20
+ with :
21
+ input-file : ' package.json'
22
+ input-property : ' foo' # does not exist
23
+ required-value : ' false' # Ignore if not present
17
24
- name : Display property value for input-property in input-file
18
25
id : write
19
26
run : echo "The value for ${{ steps.read.outputs.output-property }} is ${{ steps.read.outputs.output-value }}"
Original file line number Diff line number Diff line change @@ -11,6 +11,10 @@ inputs:
11
11
description : ' Root-level or nested property using dot notation'
12
12
required : true
13
13
default : ' package.json'
14
+ required-value :
15
+ description : ' Fail if not found'
16
+ required : false
17
+ default : ' false'
14
18
outputs :
15
19
output-property :
16
20
description : ' The value of input-property'
Original file line number Diff line number Diff line change @@ -2836,12 +2836,14 @@ const fs = __nccwpck_require__(147);
2836
2836
const core = __nccwpck_require__ ( 186 ) ;
2837
2837
try {
2838
2838
const item = core . getInput ( 'input-property' ) || 'foo'
2839
+ const requiredValue = core . getInput ( 'required-value' ) || 'false'
2839
2840
const inputFile = core . getInput ( 'input-file' ) || 'package.json'
2840
2841
const newdata = JSON . parse ( fs . readFileSync ( inputFile ) )
2841
- const outValue = eval ( "newdata." + item )
2842
+ var outValue = ''
2843
+ outValue = eval ( "newdata." + item )
2842
2844
core . setOutput ( 'output-property' , item ) ;
2843
2845
core . setOutput ( 'output-value' , outValue ) ;
2844
- if ( outValue === undefined ) {
2846
+ if ( outValue === undefined && requiredValue == 'true' ) {
2845
2847
core . setFailed ( 'Property: ' + item + ' does not exist in ' + inputFile ) ;
2846
2848
}
2847
2849
}
Original file line number Diff line number Diff line change @@ -2,12 +2,14 @@ const fs = require('fs');
2
2
const core = require ( '@actions/core' ) ;
3
3
try {
4
4
const item = core . getInput ( 'input-property' ) || 'foo'
5
+ const requiredValue = core . getInput ( 'required-value' ) || 'false'
5
6
const inputFile = core . getInput ( 'input-file' ) || 'package.json'
6
7
const newdata = JSON . parse ( fs . readFileSync ( inputFile ) )
7
- const outValue = eval ( "newdata." + item )
8
+ var outValue = ''
9
+ outValue = eval ( "newdata." + item )
8
10
core . setOutput ( 'output-property' , item ) ;
9
11
core . setOutput ( 'output-value' , outValue ) ;
10
- if ( outValue === undefined ) {
12
+ if ( outValue === undefined && requiredValue == 'true' ) {
11
13
core . setFailed ( 'Property: ' + item + ' does not exist in ' + inputFile ) ;
12
14
}
13
15
}
Original file line number Diff line number Diff line change 8
8
"precommit" : " npm run build && git add dist/"
9
9
},
10
10
"author" : {
11
- "name" : " fiddlermikey"
11
+ "name" : " fiddlermikey" ,
12
+ "email" : " fake@fakestreet.org"
12
13
},
13
14
"devDependencies" : {
14
15
"eslint" : " ^8.21.0"
You can’t perform that action at this time.
0 commit comments