diff --git a/action.yml b/action.yml index d6bd149..d71385e 100644 --- a/action.yml +++ b/action.yml @@ -42,53 +42,29 @@ runs: id: validate shell: bash run: | - cd ${{ inputs.working-directory }} - VALIDATE_ARGS="" - if [[ -n "${{ inputs.var-file }}" ]]; then - VALIDATE_ARGS="$VALIDATE_ARGS -var-file=${{ inputs.var-file }}" - fi - - # Capture both stdout and stderr - OUTPUT=$(terraform validate -no-color $VALIDATE_ARGS 2>&1) - VALIDATE_EXIT_CODE=$? - - # Store validation output - VALIDATE_OUTPUT="$OUTPUT" - - # Run terraform test if validation passed - TEST_OUTPUT="" - TEST_EXIT_CODE=0 - if [ $VALIDATE_EXIT_CODE -eq 0 ]; then - TEST_OUTPUT=$(terraform test 2>&1) - TEST_EXIT_CODE=$? + terraform validate + if [[ $? -ne 0 ]]; then + echo "Terraform validation failed" + echo "is_valid=false" >> $GITHUB_OUT fi - - # Combine outputs - COMBINED_OUTPUT="${VALIDATE_OUTPUT}" - if [ -n "$TEST_OUTPUT" ]; then - COMBINED_OUTPUT="${COMBINED_OUTPUT} + echo "Terraform validation passed" + echo "is_valid=true" >> $GITHUB_OUT -=== Terraform Test Results === -${TEST_OUTPUT}" - fi - - # Set outputs - echo "stdout<> $GITHUB_OUTPUT - echo "$COMBINED_OUTPUT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "stderr<> $GITHUB_OUTPUT - if [ $VALIDATE_EXIT_CODE -ne 0 ]; then - echo "$VALIDATE_OUTPUT" >> $GITHUB_OUTPUT - elif [ $TEST_EXIT_CODE -ne 0 ]; then - echo "$TEST_OUTPUT" >> $GITHUB_OUTPUT + - name: Terraform Test + id: test + shell: bash + run: | + terraform test + if [[ $? -ne 0 ]]; then + echo "Terraform tests failed" + echo "tests_passed=false" >> $GITHUB_OUT fi - echo "EOF" >> $GITHUB_OUTPUT - - echo "is_valid=$([ $VALIDATE_EXIT_CODE -eq 0 ] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT - echo "tests_passed=$([ $TEST_EXIT_CODE -eq 0 ] && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT - - # Exit with failure if either validate or test failed - if [ $VALIDATE_EXIT_CODE -ne 0 ] || [ $TEST_EXIT_CODE -ne 0 ]; then - exit 1 - fi \ No newline at end of file + echo "Terraform tests passed" + echo "tests_passed=true" >> $GITHUB_OUT + + - name: Set Outputs + id: set_outputs + shell: bash + run: | + echo "is_valid=${{ steps.validate.outputs.is_valid }}" >> $GITHUB_ENV + echo "tests_passed=${{ steps.test.outputs.tests_passed }}" >> $GITHUB_ENV \ No newline at end of file