From c85ba571891f3a9571b9bb89a7e31d099f4fd4a1 Mon Sep 17 00:00:00 2001 From: Yuji Okazawa Date: Tue, 21 Feb 2023 05:11:58 +0900 Subject: [PATCH] replace set-output statement GITHUB_OUTPUT (#12) * #11 replace set-output statement GITHUB_OUTPUT * test: replace set-output statement GITHUB_OUTPUT --- src/yaml_lint.sh | 2 +- tests/run.bats | 75 ++++++++++++++++++++++++++++++++++++------------ 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/src/yaml_lint.sh b/src/yaml_lint.sh index f578816..03376e1 100755 --- a/src/yaml_lint.sh +++ b/src/yaml_lint.sh @@ -42,7 +42,7 @@ ${lint_output} echo "${lint_payload}" | curl -s -S -H "Authorization: token ${GITHUB_ACCESS_TOKEN}" --header "Content-Type: application/json" --data @- "${lint_comment_url}" > /dev/null fi - echo ::set-output name=yamllint_output::${lint_output} + echo "yamllint_output=${lint_output}" >> $GITHUB_OUTPUT exit ${lint_exit_code} } diff --git a/tests/run.bats b/tests/run.bats index 32c4c86..f6126a8 100755 --- a/tests/run.bats +++ b/tests/run.bats @@ -33,6 +33,9 @@ function setup() { unset INPUT_YAMLLINT_CONFIG_DATAPATH unset INPUT_YAMLLINT_FORMAT unset INPUT_YAMLLINT_COMMENT + export ROOT_DIR="${ROOT_DIR:-$(pwd)}" + export GITHUB_OUTPUT_FILE="${GITHUB_OUTPUT_FILE:-$(mktemp -p "${BATS_TMPDIR}")}" + cp /dev/null "${GITHUB_OUTPUT_FILE}" } ## INPUT_YAMLLINT_FILE_OR_DIR ################################################# @@ -43,8 +46,10 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file2.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" @@ -56,8 +61,10 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" @@ -65,15 +72,19 @@ function setup() { echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "lint: error: failed yamllint on" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } ## folder @test "INPUT_YAMLLINT_FILE_OR_DIR: nested_folder with one errors" { run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/nested_folder" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" @@ -92,19 +103,23 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="1" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -q "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } @@ -112,19 +127,23 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="true" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -q "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } @@ -132,18 +151,22 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file2.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="true" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" - echo $output | grep -vq "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -vq "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -vq "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 0 ]] } @@ -152,19 +175,23 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="0" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -vq "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } @@ -172,19 +199,23 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="false" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -vq "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } @@ -193,19 +224,23 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e INPUT_YAMLLINT_COMMENT="" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -vq "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] } @@ -213,17 +248,21 @@ function setup() { INPUT_YAMLLINT_FILE_OR_DIR="/mnt/tests/data/single_files/file1.yml" run docker run --rm \ - -v "$(pwd):/mnt/" \ + -v "${ROOT_DIR}:/mnt/" \ -e INPUT_YAMLLINT_FILE_OR_DIR="${INPUT_YAMLLINT_FILE_OR_DIR}" \ -e GITHUB_EVENT_PATH="/tmp/" \ -e GITHUB_EVENT_NAME="pull_request" \ + --mount type=bind,source="${GITHUB_OUTPUT_FILE}",target=/github_output \ + -e GITHUB_OUTPUT=/github_output \ -i $CONTAINER_NAME debug "${status}" "${output}" "${lines}" echo $output | grep -q "$INPUT_YAMLLINT_FILE_OR_DIR" echo $output | grep -q "line too long (114 > 80 characters)" - echo $output | grep -q "::set-output name=yamllint_output::${INPUT_YAMLLINT_FILE_OR_DIR}" echo $output | grep -vq "lint: info: commenting on the pull request" + + cat ${GITHUB_OUTPUT_FILE} | grep -q "yamllint_output=${INPUT_YAMLLINT_FILE_OR_DIR}" + [[ "${status}" -eq 1 ]] }