File tree Expand file tree Collapse file tree 5 files changed +22
-6
lines changed Expand file tree Collapse file tree 5 files changed +22
-6
lines changed Original file line number Diff line number Diff line change 77 name : A test job to read a value from json as a variable
88 steps :
99 - name : Checkout
10- uses : actions/checkout@v3
10+ uses : actions/checkout@v4
1111 - name : Read a json file
1212 uses : ./
1313 id : read
1414 with :
1515 input-file : ' package.json'
1616 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
1724 - name : Display property value for input-property in input-file
1825 id : write
1926 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:
1111 description : ' Root-level or nested property using dot notation'
1212 required : true
1313 default : ' package.json'
14+ required-value :
15+ description : ' Fail if not found'
16+ required : false
17+ default : ' false'
1418outputs :
1519 output-property :
1620 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);
28362836const core = __nccwpck_require__ ( 186 ) ;
28372837try {
28382838 const item = core . getInput ( 'input-property' ) || 'foo'
2839+ const requiredValue = core . getInput ( 'required-value' ) || 'false'
28392840 const inputFile = core . getInput ( 'input-file' ) || 'package.json'
28402841 const newdata = JSON . parse ( fs . readFileSync ( inputFile ) )
2841- const outValue = eval ( "newdata." + item )
2842+ var outValue = ''
2843+ outValue = eval ( "newdata." + item )
28422844 core . setOutput ( 'output-property' , item ) ;
28432845 core . setOutput ( 'output-value' , outValue ) ;
2844- if ( outValue === undefined ) {
2846+ if ( outValue === undefined && requiredValue == 'true' ) {
28452847 core . setFailed ( 'Property: ' + item + ' does not exist in ' + inputFile ) ;
28462848 }
28472849}
Original file line number Diff line number Diff line change @@ -2,12 +2,14 @@ const fs = require('fs');
22const core = require ( '@actions/core' ) ;
33try {
44 const item = core . getInput ( 'input-property' ) || 'foo'
5+ const requiredValue = core . getInput ( 'required-value' ) || 'false'
56 const inputFile = core . getInput ( 'input-file' ) || 'package.json'
67 const newdata = JSON . parse ( fs . readFileSync ( inputFile ) )
7- const outValue = eval ( "newdata." + item )
8+ var outValue = ''
9+ outValue = eval ( "newdata." + item )
810 core . setOutput ( 'output-property' , item ) ;
911 core . setOutput ( 'output-value' , outValue ) ;
10- if ( outValue === undefined ) {
12+ if ( outValue === undefined && requiredValue == 'true' ) {
1113 core . setFailed ( 'Property: ' + item + ' does not exist in ' + inputFile ) ;
1214 }
1315}
Original file line number Diff line number Diff line change 88 "precommit" : " npm run build && git add dist/"
99 },
1010 "author" : {
11- "name" : " fiddlermikey"
11+ "name" : " fiddlermikey" ,
12+ 1213 },
1314 "devDependencies" : {
1415 "eslint" : " ^8.21.0"
You can’t perform that action at this time.
0 commit comments