From af3c34f305e7f824e94272e212990484a4063868 Mon Sep 17 00:00:00 2001 From: Uchio Kondo Date: Sat, 22 Aug 2026 12:37:54 +0900 Subject: [PATCH 1/5] Add runn failure diagnostics --- .github/workflows/runn-cli-tests.yml | 39 +++++++++++++++++-- uzumibi-cli/tests/runn/.gitignore | 1 + uzumibi-cli/tests/runn/new_cloudflare.yml | 8 +++- .../tests/runn/new_cloudflare_queue.yml | 4 +- 4 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 uzumibi-cli/tests/runn/.gitignore diff --git a/.github/workflows/runn-cli-tests.yml b/.github/workflows/runn-cli-tests.yml index 53252be..2c6ef41 100644 --- a/.github/workflows/runn-cli-tests.yml +++ b/.github/workflows/runn-cli-tests.yml @@ -97,7 +97,18 @@ jobs: UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} - run: runn run new_cloudflare.yml --verbose + run: | + mkdir -p .runn-diagnostics + runn run new_cloudflare.yml --verbose + + - name: Upload Cloudflare failure diagnostics + if: failure() + uses: actions/upload-artifact@v4 + with: + name: runn-cloudflare-diagnostics + path: uzumibi-cli/tests/runn/.runn-diagnostics/ + if-no-files-found: ignore + retention-days: 7 cloudflare-enable-external-test: name: Cloudflare template test (enable-external) @@ -146,7 +157,18 @@ jobs: UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_NEW_EXTRA_ARGS: "--features enable-external" UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} - run: runn run new_cloudflare.yml --verbose + run: | + mkdir -p .runn-diagnostics + runn run new_cloudflare.yml --verbose + + - name: Upload Cloudflare enable-external failure diagnostics + if: failure() + uses: actions/upload-artifact@v4 + with: + name: runn-cloudflare-enable-external-diagnostics + path: uzumibi-cli/tests/runn/.runn-diagnostics/ + if-no-files-found: ignore + retention-days: 7 cloudflare-queue-test: name: Cloudflare Queue template test @@ -194,7 +216,18 @@ jobs: UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-queue-project-${{ github.run_id }} - run: runn run new_cloudflare_queue.yml --verbose + run: | + mkdir -p .runn-diagnostics + runn run new_cloudflare_queue.yml --verbose + + - name: Upload Cloudflare Queue failure diagnostics + if: failure() + uses: actions/upload-artifact@v4 + with: + name: runn-cloudflare-queue-diagnostics + path: uzumibi-cli/tests/runn/.runn-diagnostics/ + if-no-files-found: ignore + retention-days: 7 cloudrun-test: name: Cloud Run template test diff --git a/uzumibi-cli/tests/runn/.gitignore b/uzumibi-cli/tests/runn/.gitignore new file mode 100644 index 0000000..fd04f74 --- /dev/null +++ b/uzumibi-cli/tests/runn/.gitignore @@ -0,0 +1 @@ +.runn-diagnostics/ diff --git a/uzumibi-cli/tests/runn/new_cloudflare.yml b/uzumibi-cli/tests/runn/new_cloudflare.yml index 49552cb..5ab749c 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare.yml @@ -76,7 +76,9 @@ steps: desc: Build the WASM app exec: command: cd {{ vars.tmpdir }}/{{ vars.project_name }}/wasm-app && cargo build --target wasm32-unknown-unknown --release - dump: steps + dump: + expr: current + out: .runn-diagnostics/build-wasm.response.json test: current.exit_code == 0 start_server: @@ -111,5 +113,7 @@ steps: desc: Clean up test directory exec: command: rm -rf {{ vars.tmpdir }}/{{ vars.project_name }} - dump: steps + dump: + expr: current + out: .runn-diagnostics/cleanup.response.json test: current.exit_code == 0 diff --git a/uzumibi-cli/tests/runn/new_cloudflare_queue.yml b/uzumibi-cli/tests/runn/new_cloudflare_queue.yml index da9532d..92275b1 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare_queue.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare_queue.yml @@ -92,5 +92,7 @@ steps: desc: Clean up test directory exec: command: rm -rf {{ vars.tmpdir }}/{{ vars.project_name }} - dump: steps + dump: + expr: current + out: .runn-diagnostics/cleanup.response.json test: current.exit_code == 0 From a601fbc81261919152cc72013322513a8abc26bc Mon Sep 17 00:00:00 2001 From: Uchio Kondo Date: Sat, 22 Aug 2026 12:43:11 +0900 Subject: [PATCH 2/5] Use runn debug artifacts --- .github/workflows/runn-cli-tests.yml | 31 +++++++++++++++++++ uzumibi-cli/tests/runn/new_cloudflare.yml | 6 ---- .../tests/runn/new_cloudflare_queue.yml | 3 -- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/.github/workflows/runn-cli-tests.yml b/.github/workflows/runn-cli-tests.yml index 2c6ef41..c8b81be 100644 --- a/.github/workflows/runn-cli-tests.yml +++ b/.github/workflows/runn-cli-tests.yml @@ -101,6 +101,16 @@ jobs: mkdir -p .runn-diagnostics runn run new_cloudflare.yml --verbose + - name: Capture Cloudflare failure diagnostics + if: failure() + working-directory: uzumibi-cli/tests/runn + env: + RUNN_SCOPES: "read:parent,run:exec" + UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi + UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} + UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} + run: runn run new_cloudflare.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + - name: Upload Cloudflare failure diagnostics if: failure() uses: actions/upload-artifact@v4 @@ -161,6 +171,17 @@ jobs: mkdir -p .runn-diagnostics runn run new_cloudflare.yml --verbose + - name: Capture Cloudflare enable-external failure diagnostics + if: failure() + working-directory: uzumibi-cli/tests/runn + env: + RUNN_SCOPES: "read:parent,run:exec" + UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi + UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} + UZUMIBI_NEW_EXTRA_ARGS: "--features enable-external" + UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} + run: runn run new_cloudflare.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + - name: Upload Cloudflare enable-external failure diagnostics if: failure() uses: actions/upload-artifact@v4 @@ -220,6 +241,16 @@ jobs: mkdir -p .runn-diagnostics runn run new_cloudflare_queue.yml --verbose + - name: Capture Cloudflare Queue failure diagnostics + if: failure() + working-directory: uzumibi-cli/tests/runn + env: + RUNN_SCOPES: "read:parent,run:exec" + UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi + UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} + UZUMIBI_PROJECT_NAME: test-cloudflare-queue-project-${{ github.run_id }} + run: runn run new_cloudflare_queue.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + - name: Upload Cloudflare Queue failure diagnostics if: failure() uses: actions/upload-artifact@v4 diff --git a/uzumibi-cli/tests/runn/new_cloudflare.yml b/uzumibi-cli/tests/runn/new_cloudflare.yml index 5ab749c..2e5c680 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare.yml @@ -76,9 +76,6 @@ steps: desc: Build the WASM app exec: command: cd {{ vars.tmpdir }}/{{ vars.project_name }}/wasm-app && cargo build --target wasm32-unknown-unknown --release - dump: - expr: current - out: .runn-diagnostics/build-wasm.response.json test: current.exit_code == 0 start_server: @@ -113,7 +110,4 @@ steps: desc: Clean up test directory exec: command: rm -rf {{ vars.tmpdir }}/{{ vars.project_name }} - dump: - expr: current - out: .runn-diagnostics/cleanup.response.json test: current.exit_code == 0 diff --git a/uzumibi-cli/tests/runn/new_cloudflare_queue.yml b/uzumibi-cli/tests/runn/new_cloudflare_queue.yml index 92275b1..08a1ab2 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare_queue.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare_queue.yml @@ -92,7 +92,4 @@ steps: desc: Clean up test directory exec: command: rm -rf {{ vars.tmpdir }}/{{ vars.project_name }} - dump: - expr: current - out: .runn-diagnostics/cleanup.response.json test: current.exit_code == 0 From 6915d633ae2a529d20ab8f857b26aa3f132ff11b Mon Sep 17 00:00:00 2001 From: Uchio Kondo Date: Sat, 22 Aug 2026 12:45:27 +0900 Subject: [PATCH 3/5] Add runn diagnostics failure step --- uzumibi-cli/tests/runn/new_cloudflare.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/uzumibi-cli/tests/runn/new_cloudflare.yml b/uzumibi-cli/tests/runn/new_cloudflare.yml index 2e5c680..ea6fa2f 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare.yml @@ -106,6 +106,12 @@ steps: command: kill -INT $(ps -ef | grep 'wrangler.js de[v]' | awk '{print $2}') || true test: current.exit_code == 0 + intentional_failure_for_diagnostics: + desc: Intentionally fail to verify CI diagnostics + exec: + command: echo 'Intentional failure for runn diagnostics validation' >&2; exit 1 + test: current.exit_code == 0 + cleanup_after: desc: Clean up test directory exec: From e5f58ecf5e93c8b95bb0ec24d397d5190b2939bf Mon Sep 17 00:00:00 2001 From: Uchio Kondo Date: Sat, 22 Aug 2026 12:56:01 +0900 Subject: [PATCH 4/5] Store runn diagnostics outside hidden directory --- .github/workflows/runn-cli-tests.yml | 24 +++++++++++++++--------- uzumibi-cli/tests/runn/.gitignore | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/runn-cli-tests.yml b/.github/workflows/runn-cli-tests.yml index c8b81be..e5d8836 100644 --- a/.github/workflows/runn-cli-tests.yml +++ b/.github/workflows/runn-cli-tests.yml @@ -98,7 +98,7 @@ jobs: UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} run: | - mkdir -p .runn-diagnostics + mkdir -p runn-diagnostics runn run new_cloudflare.yml --verbose - name: Capture Cloudflare failure diagnostics @@ -109,14 +109,16 @@ jobs: UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} - run: runn run new_cloudflare.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + run: | + runn run new_cloudflare.yml --verbose --debug > runn-diagnostics/runn-debug.log 2>&1 || true + test -s runn-diagnostics/runn-debug.log - name: Upload Cloudflare failure diagnostics if: failure() uses: actions/upload-artifact@v4 with: name: runn-cloudflare-diagnostics - path: uzumibi-cli/tests/runn/.runn-diagnostics/ + path: uzumibi-cli/tests/runn/runn-diagnostics/ if-no-files-found: ignore retention-days: 7 @@ -168,7 +170,7 @@ jobs: UZUMIBI_NEW_EXTRA_ARGS: "--features enable-external" UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} run: | - mkdir -p .runn-diagnostics + mkdir -p runn-diagnostics runn run new_cloudflare.yml --verbose - name: Capture Cloudflare enable-external failure diagnostics @@ -180,14 +182,16 @@ jobs: UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_NEW_EXTRA_ARGS: "--features enable-external" UZUMIBI_PROJECT_NAME: test-cloudflare-project-${{ github.run_id }} - run: runn run new_cloudflare.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + run: | + runn run new_cloudflare.yml --verbose --debug > runn-diagnostics/runn-debug.log 2>&1 || true + test -s runn-diagnostics/runn-debug.log - name: Upload Cloudflare enable-external failure diagnostics if: failure() uses: actions/upload-artifact@v4 with: name: runn-cloudflare-enable-external-diagnostics - path: uzumibi-cli/tests/runn/.runn-diagnostics/ + path: uzumibi-cli/tests/runn/runn-diagnostics/ if-no-files-found: ignore retention-days: 7 @@ -238,7 +242,7 @@ jobs: UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-queue-project-${{ github.run_id }} run: | - mkdir -p .runn-diagnostics + mkdir -p runn-diagnostics runn run new_cloudflare_queue.yml --verbose - name: Capture Cloudflare Queue failure diagnostics @@ -249,14 +253,16 @@ jobs: UZUMIBI_TEST_BINARY: ${{ github.workspace }}/target/release/uzumibi UZUMIBI_TEST_TMPDIR: ${{ runner.temp }} UZUMIBI_PROJECT_NAME: test-cloudflare-queue-project-${{ github.run_id }} - run: runn run new_cloudflare_queue.yml --verbose --debug > .runn-diagnostics/runn-debug.log 2>&1 || true + run: | + runn run new_cloudflare_queue.yml --verbose --debug > runn-diagnostics/runn-debug.log 2>&1 || true + test -s runn-diagnostics/runn-debug.log - name: Upload Cloudflare Queue failure diagnostics if: failure() uses: actions/upload-artifact@v4 with: name: runn-cloudflare-queue-diagnostics - path: uzumibi-cli/tests/runn/.runn-diagnostics/ + path: uzumibi-cli/tests/runn/runn-diagnostics/ if-no-files-found: ignore retention-days: 7 diff --git a/uzumibi-cli/tests/runn/.gitignore b/uzumibi-cli/tests/runn/.gitignore index fd04f74..478b661 100644 --- a/uzumibi-cli/tests/runn/.gitignore +++ b/uzumibi-cli/tests/runn/.gitignore @@ -1 +1 @@ -.runn-diagnostics/ +runn-diagnostics/ From 0a6faf2c5c1efa3ce60466ad2d21ad79fea010dc Mon Sep 17 00:00:00 2001 From: Uchio Kondo Date: Sat, 22 Aug 2026 13:00:29 +0900 Subject: [PATCH 5/5] Remove runn diagnostics failure step --- uzumibi-cli/tests/runn/new_cloudflare.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/uzumibi-cli/tests/runn/new_cloudflare.yml b/uzumibi-cli/tests/runn/new_cloudflare.yml index ea6fa2f..2e5c680 100644 --- a/uzumibi-cli/tests/runn/new_cloudflare.yml +++ b/uzumibi-cli/tests/runn/new_cloudflare.yml @@ -106,12 +106,6 @@ steps: command: kill -INT $(ps -ef | grep 'wrangler.js de[v]' | awk '{print $2}') || true test: current.exit_code == 0 - intentional_failure_for_diagnostics: - desc: Intentionally fail to verify CI diagnostics - exec: - command: echo 'Intentional failure for runn diagnostics validation' >&2; exit 1 - test: current.exit_code == 0 - cleanup_after: desc: Clean up test directory exec: