diff --git a/cli/integration_tests/basic_monorepo/run_summary.t b/cli/integration_tests/basic_monorepo/run_summary.t deleted file mode 100644 index 54736439ed390..0000000000000 --- a/cli/integration_tests/basic_monorepo/run_summary.t +++ /dev/null @@ -1,71 +0,0 @@ -Setup - $ . ${TESTDIR}/../setup.sh - $ . ${TESTDIR}/setup.sh $(pwd) - - $ rm -rf .turbo/runs - $ TURBO_RUN_SUMMARY=true ${TURBO} run build -- someargs > /dev/null -# no output, just check for 0 status code - $ test -d .turbo/runs - $ ls .turbo/runs/*.json | wc -l - \s*1 (re) - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | length' - 2 - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.version' - "0" - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.exitCode' - 0 - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.attempted' - 2 - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.cached' - 0 - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.failed' - 0 - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.success' - 2 - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.startTime' - [0-9]+ (re) - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.executionSummary.endTime' - [0-9]+ (re) - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "my-app#build")) | .[0].execution' - { - "startTime": [0-9]+, (re) - "endTime": [0-9]+, (re) - "status": "built", - "error": null, - "exitCode": 0 - } - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "my-app#build")) | .[0].commandArguments' - [ - "someargs" - ] - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "util#build")) | .[0].execution' - { - "startTime": [0-9]+, (re) - "endTime": [0-9]+, (re) - "status": "built", - "error": null, - "exitCode": 0 - } - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "my-app#build")) | .[0].hashOfExternalDependencies' - "ccab0b28617f1f56" - -# validate expandedOutputs since it won't be in dry runs and we want some testing around that - $ cat $(ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "my-app#build")) | .[0].expandedOutputs' - [ - "apps/my-app/.turbo/turbo-build.log" - ] - - $ cat $(/bin/ls .turbo/runs/*.json | head -n1) | jq '.tasks | map(select(.taskId == "another#build"))' - [] - -# Without env var, no summary file is generated - $ rm -rf .turbo/runs - $ ${TURBO} run build > /dev/null -# validate with exit code so the test works on macOS and linux - $ test -d .turbo/runs - [1] diff --git a/cli/integration_tests/basic_monorepo/run_summary/get-build.sh b/cli/integration_tests/basic_monorepo/run_summary/get-build.sh new file mode 100755 index 0000000000000..d94ec3a7cabe1 --- /dev/null +++ b/cli/integration_tests/basic_monorepo/run_summary/get-build.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +cat "$1" | jq ".tasks | map(select(.taskId == \"$2#build\")) | .[0]" diff --git a/cli/integration_tests/basic_monorepo/run_summary/run_summary.t b/cli/integration_tests/basic_monorepo/run_summary/run_summary.t new file mode 100644 index 0000000000000..dde6af5de20cb --- /dev/null +++ b/cli/integration_tests/basic_monorepo/run_summary/run_summary.t @@ -0,0 +1,82 @@ +Setup + $ . ${TESTDIR}/../../setup.sh + $ . ${TESTDIR}/../setup.sh $(pwd) + +# Delete all run summaries + $ rm -rf .turbo/runs + + $ TURBO_RUN_SUMMARY=true ${TURBO} run build -- someargs > /dev/null # first run (should be cache miss) + +# no output, just check for 0 status code, which means the directory was created + $ test -d .turbo/runs +# expect 2 run summaries are created + $ ls .turbo/runs/*.json | wc -l + \s*1 (re) + +# get jq-parsed output of each run summary + $ FIRST=$(/bin/ls .turbo/runs/*.json | head -n1) + +# some top level run summary validation + $ cat $FIRST | jq '.tasks | length' + 2 + $ cat $FIRST | jq '.version' + "0" + $ cat $FIRST | jq '.executionSummary.exitCode' + 0 + $ cat $FIRST | jq '.executionSummary.attempted' + 2 + $ cat $FIRST | jq '.executionSummary.cached' + 0 + $ cat $FIRST | jq '.executionSummary.failed' + 0 + $ cat $FIRST | jq '.executionSummary.success' + 2 + $ cat $FIRST | jq '.executionSummary.startTime' + [0-9]+ (re) + $ cat $FIRST | jq '.executionSummary.endTime' + [0-9]+ (re) + +# Extract some task-specific summaries from each + $ FIRST_APP_BUILD=$("$TESTDIR/get-build.sh" "$FIRST" "my-app") + $ FIRST_UTIL_BUILD=$("$TESTDIR/get-build.sh" "$FIRST" "util") + + $ echo $FIRST_APP_BUILD | jq '.execution' + { + "startTime": [0-9]+, (re) + "endTime": [0-9]+, (re) + "status": "built", + "error": null, + "exitCode": 0 + } + $ echo $FIRST_APP_BUILD | jq '.commandArguments' + [ + "someargs" + ] + + $ echo $FIRST_APP_BUILD | jq '.hashOfExternalDependencies' + "ccab0b28617f1f56" + $ echo $FIRST_APP_BUILD | jq '.expandedOutputs' + [ + "apps/my-app/.turbo/turbo-build.log" + ] + +# Some validation of util#build + $ echo $FIRST_UTIL_BUILD | jq '.execution' + { + "startTime": [0-9]+, (re) + "endTime": [0-9]+, (re) + "status": "built", + "error": null, + "exitCode": 0 + } + +# another#build is not in tasks, because it didn't execute (script was not implemented) + $ "$TESTDIR/get-build.sh" $FIRST "another" + null + +# Without env var, no summary file is generated + $ rm -rf .turbo/runs + $ ${TURBO} run build > /dev/null +# validate with exit code so the test works on macOS and linux + $ test -d .turbo/runs + [1] diff --git a/cli/integration_tests/basic_monorepo/run_summary_fail.t b/cli/integration_tests/basic_monorepo/run_summary/run_summary_fail.t similarity index 93% rename from cli/integration_tests/basic_monorepo/run_summary_fail.t rename to cli/integration_tests/basic_monorepo/run_summary/run_summary_fail.t index fd6a544f3c62f..6ba02942a4b8b 100644 --- a/cli/integration_tests/basic_monorepo/run_summary_fail.t +++ b/cli/integration_tests/basic_monorepo/run_summary/run_summary_fail.t @@ -1,6 +1,6 @@ Setup - $ . ${TESTDIR}/../setup.sh - $ . ${TESTDIR}/setup.sh $(pwd) + $ . ${TESTDIR}/../../setup.sh + $ . ${TESTDIR}/../setup.sh $(pwd) $ rm -rf .turbo/runs