diff --git a/action.yml b/action.yml index f76d9af..19e3b00 100644 --- a/action.yml +++ b/action.yml @@ -85,5 +85,5 @@ runs: "${{ inputs.composer-options }}" \ "${{ inputs.working-directory }}" \ "${{ steps.php.outputs.path }}" \ - "${{ steps.composer.outputs.command }}" \ + "${{ steps.composer.outputs.composer_command }}" \ "${{ steps.composer.outputs.lock }}" diff --git a/bin/cache_key.sh b/bin/cache_key.sh index 966e852..f9da134 100755 --- a/bin/cache_key.sh +++ b/bin/cache_key.sh @@ -57,7 +57,7 @@ cache_key="$(make_key "${key[@]}")" echo "::debug::Cache primary key is '${cache_key}'" echo "::debug::Cache restore keys are '$(join_by ", " "${uniq_restore_key[@]}")'" -echo "::set-output name=key::${cache_key}" +echo "key=${cache_key}" >> "${GITHUB_OUTPUT}" # Use an environment variable to capture the multiline restore key. # See: https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#multiline-strings diff --git a/bin/composer_paths.sh b/bin/composer_paths.sh index 8c327ff..4d96a68 100755 --- a/bin/composer_paths.sh +++ b/bin/composer_paths.sh @@ -53,7 +53,9 @@ echo "::debug::${composer_version}" echo "::debug::Composer cache directory found at '${cache_dir}'" echo "::debug::File composer.json found at '${composer_json}'" echo "::debug::File composer.lock path computed as '${composer_lock}'" -echo "::set-output name=command::${composer_path}" -echo "::set-output name=cache-dir::${cache_dir}" -echo "::set-output name=json::${composer_json}" -echo "::set-output name=lock::${composer_lock}" +{ + echo "composer_command=${composer_path}" + echo "cache-dir=${cache_dir}" + echo "json=${composer_json}" + echo "lock=${composer_lock}" +} >> "${GITHUB_OUTPUT}" diff --git a/bin/php_version.sh b/bin/php_version.sh index 746c05c..e637e03 100755 --- a/bin/php_version.sh +++ b/bin/php_version.sh @@ -16,5 +16,5 @@ php_version=$($php_path -r 'echo phpversion();') echo "::debug::PHP path is '${php_path}'" echo "::debug::PHP version is '${php_version}'" -echo "::set-output name=path::${php_path}" -echo "::set-output name=version::${php_version}" +echo "path=${php_path}" >> "${GITHUB_OUTPUT}" +echo "version=${php_version}" >> "${GITHUB_OUTPUT}" diff --git a/bin/should_cache.sh b/bin/should_cache.sh index 33c2c61..95cbcd0 100755 --- a/bin/should_cache.sh +++ b/bin/should_cache.sh @@ -15,4 +15,4 @@ if [ $should_cache -eq 0 ]; then fi echo "::debug::We ${will_cache} the dependencies because ignore-cache is set to '${ignore_cache}'" -echo "::set-output name=do-cache::${should_cache}" +echo "do-cache=${should_cache}" >> "${GITHUB_OUTPUT}" diff --git a/tests/expect/cache_key_01.exp b/tests/expect/cache_key_01.exp index 63e402b..ba9c4eb 100755 --- a/tests/expect/cache_key_01.exp +++ b/tests/expect/cache_key_01.exp @@ -1,17 +1,23 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_01.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_01.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh match_max 100000 expect -exact "::debug::Cache primary key is 'php-composer-locked'" expect -exact "::debug::Cache restore keys are 'php-composer-locked-'" -expect -exact "::set-output name=key::php-composer-locked" + expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +33,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=php-composer-locked\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_02.exp b/tests/expect/cache_key_02.exp index c7a5b20..dee529b 100755 --- a/tests/expect/cache_key_02.exp +++ b/tests/expect/cache_key_02.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_02.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_02.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Linux" "8.1.1" "" "" "long-files-hash" match_max 100000 expect -exact "::debug::Cache primary key is 'Linux-php-8.1.1-composer-locked-long-files-hash'" expect -exact "::debug::Cache restore keys are 'Linux-php-8.1.1-composer-locked-'" -expect -exact "::set-output name=key::Linux-php-8.1.1-composer-locked-long-files-hash" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=Linux-php-8.1.1-composer-locked-long-files-hash\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_03.exp b/tests/expect/cache_key_03.exp index 58bfaf6..5b43fac 100755 --- a/tests/expect/cache_key_03.exp +++ b/tests/expect/cache_key_03.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_03.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_03.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Linux" "8.1.1" "locked" "" "long-files-hash" match_max 100000 expect -exact "::debug::Cache primary key is 'Linux-php-8.1.1-composer-locked-long-files-hash'" expect -exact "::debug::Cache restore keys are 'Linux-php-8.1.1-composer-locked-'" -expect -exact "::set-output name=key::Linux-php-8.1.1-composer-locked-long-files-hash" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=Linux-php-8.1.1-composer-locked-long-files-hash\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_04.exp b/tests/expect/cache_key_04.exp index 9580171..1020a8b 100755 --- a/tests/expect/cache_key_04.exp +++ b/tests/expect/cache_key_04.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_04.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_04.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Linux" "8.1.1" "lowest" "--ignore-platform-reqs --optimize-autoloader" "long-files-hash" match_max 100000 expect -exact "::debug::Cache primary key is 'Linux-php-8.1.1-composer---ignore-platform-reqs---optimize-autoloader-lowest-long-files-hash'" expect -exact "::debug::Cache restore keys are 'Linux-php-8.1.1-composer---ignore-platform-reqs---optimize-autoloader-lowest-'" -expect -exact "::set-output name=key::Linux-php-8.1.1-composer---ignore-platform-reqs---optimize-autoloader-lowest-long-files-hash" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=Linux-php-8.1.1-composer---ignore-platform-reqs---optimize-autoloader-lowest-long-files-hash\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_05.exp b/tests/expect/cache_key_05.exp index 242c4ff..0b6b27b 100755 --- a/tests/expect/cache_key_05.exp +++ b/tests/expect/cache_key_05.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_05.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_05.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Linux" "8.1.1" "locked" "" "long-files-hash" "my-custom-key" match_max 100000 expect -exact "::debug::Cache primary key is 'my-custom-key'" expect -exact "::debug::Cache restore keys are ''" -expect -exact "::set-output name=key::my-custom-key" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=my-custom-key\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_06.exp b/tests/expect/cache_key_06.exp index 0706cfb..caeda76 100755 --- a/tests/expect/cache_key_06.exp +++ b/tests/expect/cache_key_06.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_06.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_06.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Linux" "8.1.1" "" "" "long-files-hash" "" "path/to/working/dir" match_max 100000 expect -exact "::debug::Cache primary key is 'Linux-php-8.1.1-composer-locked-path/to/working/dir-long-files-hash'" expect -exact "::debug::Cache restore keys are 'Linux-php-8.1.1-composer-locked-path/to/working/dir-'" -expect -exact "::set-output name=key::Linux-php-8.1.1-composer-locked-path/to/working/dir-long-files-hash" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=Linux-php-8.1.1-composer-locked-path/to/working/dir-long-files-hash\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/cache_key_07.exp b/tests/expect/cache_key_07.exp index 7721b3b..1153892 100755 --- a/tests/expect/cache_key_07.exp +++ b/tests/expect/cache_key_07.exp @@ -1,17 +1,22 @@ #!/usr/bin/env -S expect -f +# For testing environment variables written to GITHUB_ENV set gitHubEnvFile cache_key_07.txt set ::env(GITHUB_ENV) $gitHubEnvFile +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile cache_key_output_07.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/cache_key.sh "Windows" "8.0.2" "foobar" "" "some-other-hash" match_max 100000 expect -exact "::debug::Cache primary key is 'Windows-php-8.0.2-composer-locked-some-other-hash'" expect -exact "::debug::Cache restore keys are 'Windows-php-8.0.2-composer-locked-'" -expect -exact "::set-output name=key::Windows-php-8.0.2-composer-locked-some-other-hash" expect eof +# Confirm environment variables. set fp [open $gitHubEnvFile r] set fileData [read $fp] close $fp @@ -27,5 +32,19 @@ if { $expectedValue != $fileData } { exit 1 } +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "key=Windows-php-8.0.2-composer-locked-some-other-hash\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + # Clean up file delete $gitHubEnvFile +file delete $gitHubOutputFile diff --git a/tests/expect/composer_paths_01.exp b/tests/expect/composer_paths_01.exp index 4d3f3a9..95c6dfd 100755 --- a/tests/expect/composer_paths_01.exp +++ b/tests/expect/composer_paths_01.exp @@ -1,5 +1,8 @@ #!/usr/bin/env -S expect -f +set gitHubOutputFile composer_paths_01.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/composer_paths.sh match_max 100000 @@ -9,9 +12,19 @@ expect "::debug::Composer path is '*'\r ::debug::Composer cache directory found at '*'\r ::debug::File composer.json found at './composer.json'\r ::debug::File composer.lock path computed as './composer.lock'\r -::set-output name=command::*\r -::set-output name=cache-dir::*\r -::set-output name=json::./composer.json\r -::set-output name=lock::./composer.lock\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^composer_command=\S*\s*cache-dir=\S*\s*json=\./composer\.json\s*lock=./composer.lock\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/composer_paths_05.exp b/tests/expect/composer_paths_05.exp index 5e81a89..676476b 100755 --- a/tests/expect/composer_paths_05.exp +++ b/tests/expect/composer_paths_05.exp @@ -1,5 +1,9 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile composer_paths_05.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/composer_paths.sh "" "../fixtures/no-lock-file" match_max 100000 @@ -10,9 +14,19 @@ expect "::debug::Unable to find composer.lock at '../fixtures/no-lock-file/compo ::debug::Composer cache directory found at '*'\r ::debug::File composer.json found at '../fixtures/no-lock-file/composer.json'\r ::debug::File composer.lock path computed as ''\r -::set-output name=command::*\r -::set-output name=cache-dir::*\r -::set-output name=json::../fixtures/no-lock-file/composer.json\r -::set-output name=lock::\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^composer_command=\S*\s*cache-dir=\S*\s*json=\.\./fixtures/no-lock-file/composer\.json\s*lock=\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/composer_paths_06.exp b/tests/expect/composer_paths_06.exp index a0d2da7..7b176ee 100755 --- a/tests/expect/composer_paths_06.exp +++ b/tests/expect/composer_paths_06.exp @@ -1,5 +1,9 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile composer_paths_06.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/composer_paths.sh "" "../fixtures/with-lock-file" match_max 100000 @@ -9,9 +13,19 @@ expect "::debug::Composer path is '*'\r ::debug::Composer cache directory found at '*'\r ::debug::File composer.json found at '../fixtures/with-lock-file/composer.json'\r ::debug::File composer.lock path computed as '../fixtures/with-lock-file/composer.lock'\r -::set-output name=command::*\r -::set-output name=cache-dir::*\r -::set-output name=json::../fixtures/with-lock-file/composer.json\r -::set-output name=lock::../fixtures/with-lock-file/composer.lock\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^composer_command=\S*\s*cache-dir=\S*\s*json=\.\./fixtures/with-lock-file/composer\.json\s*lock=\.\./fixtures/with-lock-file/composer\.lock\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/composer_paths_08.exp b/tests/expect/composer_paths_08.exp index 7e96005..01fb397 100755 --- a/tests/expect/composer_paths_08.exp +++ b/tests/expect/composer_paths_08.exp @@ -1,5 +1,9 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile composer_paths_08.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/composer_paths.sh "" "../fixtures/out-of-sync-lock" match_max 100000 @@ -9,9 +13,19 @@ expect "::debug::Composer path is '*'\r ::debug::Composer cache directory found at '*'\r ::debug::File composer.json found at '../fixtures/out-of-sync-lock/composer.json'\r ::debug::File composer.lock path computed as '../fixtures/out-of-sync-lock/composer.lock'\r -::set-output name=command::*\r -::set-output name=cache-dir::*\r -::set-output name=json::../fixtures/out-of-sync-lock/composer.json\r -::set-output name=lock::../fixtures/out-of-sync-lock/composer.lock\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^composer_command=\S*\s*cache-dir=\S*\s*json=\.\./fixtures/out-of-sync-lock/composer\.json\s*lock=\.\./fixtures/out-of-sync-lock/composer\.lock\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/composer_paths_09.exp b/tests/expect/composer_paths_09.exp index 953b5a0..8575903 100755 --- a/tests/expect/composer_paths_09.exp +++ b/tests/expect/composer_paths_09.exp @@ -1,17 +1,31 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile composer_paths_09.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/composer_paths.sh "../fixtures/composer.phar" match_max 100000 expect "::debug::Composer path is '../fixtures/composer.phar'\r -::debug::Composer version 2.2.2 2021-12-29 14:15:27\r +::debug::Composer version 2.2.18 2022-08-20 11:33:38\r ::debug::Composer cache directory found at '*'\r ::debug::File composer.json found at './composer.json'\r ::debug::File composer.lock path computed as './composer.lock'\r -::set-output name=command::../fixtures/composer.phar\r -::set-output name=cache-dir::*\r -::set-output name=json::./composer.json\r -::set-output name=lock::./composer.lock\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^composer_command=\.\./fixtures/composer\.phar\s*cache-dir=\S*\s*json=\./composer\.json\s*lock=\./composer\.lock\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/php_version_01.exp b/tests/expect/php_version_01.exp index eae2c7a..68f80f3 100755 --- a/tests/expect/php_version_01.exp +++ b/tests/expect/php_version_01.exp @@ -1,12 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile php_version_01.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/php_version.sh match_max 100000 expect "::debug::PHP path is '*'\r ::debug::PHP version is '*.*.*'\r -::set-output name=path::*\r -::set-output name=version::*.*.*\r " expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +if {[regexp {^path=\S*\s*version=\d*\.\d*\.\d*\s*$} $fileData] == 0} { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_01.exp b/tests/expect/should_cache_01.exp index 82e8bc3..8cab46c 100755 --- a/tests/expect/should_cache_01.exp +++ b/tests/expect/should_cache_01.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_01.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh match_max 100000 expect -exact "::debug::We will cache the dependencies because ignore-cache is set to ''" -expect -exact "::set-output name=do-cache::1" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=1\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_02.exp b/tests/expect/should_cache_02.exp index fb41936..91c04eb 100755 --- a/tests/expect/should_cache_02.exp +++ b/tests/expect/should_cache_02.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_02.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "no" match_max 100000 expect -exact "::debug::We will cache the dependencies because ignore-cache is set to 'no'" -expect -exact "::set-output name=do-cache::1" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=1\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_03.exp b/tests/expect/should_cache_03.exp index 160401b..e86a442 100755 --- a/tests/expect/should_cache_03.exp +++ b/tests/expect/should_cache_03.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_03.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "yes" match_max 100000 expect -exact "::debug::We will NOT cache the dependencies because ignore-cache is set to 'yes'" -expect -exact "::set-output name=do-cache::0" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=0\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_04.exp b/tests/expect/should_cache_04.exp index 098c4c4..e52973c 100755 --- a/tests/expect/should_cache_04.exp +++ b/tests/expect/should_cache_04.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_04.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "true" match_max 100000 expect -exact "::debug::We will NOT cache the dependencies because ignore-cache is set to 'true'" -expect -exact "::set-output name=do-cache::0" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=0\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_05.exp b/tests/expect/should_cache_05.exp index b26f3e0..15a46ff 100755 --- a/tests/expect/should_cache_05.exp +++ b/tests/expect/should_cache_05.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_05.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "1" match_max 100000 expect -exact "::debug::We will NOT cache the dependencies because ignore-cache is set to '1'" -expect -exact "::set-output name=do-cache::0" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=0\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_06.exp b/tests/expect/should_cache_06.exp index b767c5e..b2c951a 100755 --- a/tests/expect/should_cache_06.exp +++ b/tests/expect/should_cache_06.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_06.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "false" match_max 100000 expect -exact "::debug::We will cache the dependencies because ignore-cache is set to 'false'" -expect -exact "::set-output name=do-cache::1" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=1\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_07.exp b/tests/expect/should_cache_07.exp index dbb1369..ca239ca 100755 --- a/tests/expect/should_cache_07.exp +++ b/tests/expect/should_cache_07.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_07.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "0" match_max 100000 expect -exact "::debug::We will cache the dependencies because ignore-cache is set to '0'" -expect -exact "::set-output name=do-cache::1" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=1\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile diff --git a/tests/expect/should_cache_08.exp b/tests/expect/should_cache_08.exp index 4032458..cf3f460 100755 --- a/tests/expect/should_cache_08.exp +++ b/tests/expect/should_cache_08.exp @@ -1,9 +1,28 @@ #!/usr/bin/env -S expect -f +# For testing outputs variables written to GITHUB_OUTPUT +set gitHubOutputFile should_cache_08.txt +set ::env(GITHUB_OUTPUT) $gitHubOutputFile + set timeout 3 spawn ../../bin/should_cache.sh "foo" match_max 100000 expect -exact "::debug::We will cache the dependencies because ignore-cache is set to 'foo'" -expect -exact "::set-output name=do-cache::1" expect eof + +# Verify output variables have been set correctly. +set fp [open $gitHubOutputFile r] +set fileData [read $fp] +close $fp + +set expectedValue "do-cache=1\n" + +if { $expectedValue != $fileData } { + puts "\nExpected output variable does not match. Received:\n" + puts $fileData + exit 1 +} + +# Clean up +file delete $gitHubOutputFile