diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 95d08a2f..ddfb06ae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,9 @@ { "uses": "actions/upload-pages-artifact@v3.0.1" }, + { + "run": "./.post.sh" + }, { "id": "deployment", "uses": "actions/deploy-pages@v4.0.5" @@ -57,6 +60,9 @@ }, { "uses": "actions/upload-pages-artifact@v3.0.1" + }, + { + "run": "./.post.sh" } ] } diff --git a/.pages.sh b/.pages.sh index aee993e8..873d09b4 100755 --- a/.pages.sh +++ b/.pages.sh @@ -22,6 +22,9 @@ export LC_ALL=C unset LANGUAGE set -o pipefail +rm -f .post.state +if test -h .post.state || test -e .post.state; then exit 255; fi +state='' $sudoagi eatmydata sudoapt clean @@ -40,12 +43,12 @@ eatmydata env TMPDIR=/tmp npm install (eatmydata npm run clean || :) eatmydata npm run build -eatmydata npm run test -eatmydata npm run test-min +eatmydata npm run test || state="$state test" +eatmydata npm run test-min || state="$state test-min" if [[ $GITHUB_REPOSITORY = danvk/dygraphs ]]; then - eatmydata npm run coverage - eatmydata scripts/post-coverage.sh - eatmydata scripts/weigh-in.sh + eatmydata npm run coverage || state="$state coverage" + eatmydata scripts/post-coverage.sh || state="$state post-coverage" + eatmydata scripts/weigh-in.sh || state="$state weigh-in" fi rm -rf _site @@ -65,3 +68,5 @@ if [[ -n $imprint_text ]]; then ' fi cd .. +set -o noglob +echo $state >.post.state diff --git a/.post.sh b/.post.sh new file mode 100755 index 00000000..ea720f2a --- /dev/null +++ b/.post.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo ::group::Check whether .pages.sh failed anywhere +state=$(cat .post.state || echo state-file-missing) +if test -n "$state"; then + echo "E: .pages.sh failed in: $state" + exit 1 +fi +echo "I: nope, ok" +echo ::endgroup:: diff --git a/LICENSE.txt b/LICENSE.txt index d2ba0d50..9e1a9526 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -10,6 +10,7 @@ Copyright (c) 2014 mirabilos Copyright (c) 2015 Petr Shevtsov Copyright (c) 2022, 2023 mirabilos Deutsche Telekom LLCTO +Copyright (c) 2025 mirabilos and numerous contributors (see git log) Some tests additionally are: