diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f9f8aa..2c6f468 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -97,6 +97,8 @@ jobs: toolchain: name: LLVM toolchain + Foundation tests needs: rust + # 統合テストが落ちても testbench artifact があれば実行する。 + if: ${{ !cancelled() }} runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 @@ -133,6 +135,8 @@ jobs: solc: name: sol compiler + WAX tests needs: rust + # 統合テストが落ちても testbench artifact があれば実行する。 + if: ${{ !cancelled() }} runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 diff --git a/MEMORY.md b/MEMORY.md index 177f816..b30b92e 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1056,3 +1056,5 @@ - Known failures run in the `known-failures` job with step-level continue-on-error (PR check stays green, results in the step log): strek_micro, strek_smoke, tb_load_live, and dos_smoke `dos_hex_returns_to_shell_at_800_cycles_per_frame`. strek_verify needs a sibling Tiny-Basic checkout and is not run. When one of these is fixed, move it back into the blocking job. - `toolchain` installs Clang of the same LLVM major as llvmlite (`llvmlite.binding.llvm_version_info`) via apt.llvm.org and sets CLANG; a mismatched Clang (e.g. Ubuntu's Clang 18 vs llvmlite's LLVM 20+) fails -O1/-O2 with "icmp constexprs". It also needs cmake + ninja (present on ubuntu-24.04 runners). - Release (CD): .github/workflows/release.yml. Pushing a `v*` tag builds cpt32 / cpt32-tool / src32_testbench in release mode for linux-x86_64, windows-x86_64 and macos-arm64 (archive also carries README, licenses, config.example.yaml, assets/bios.rom) plus both VS Code .vsix files, and publishes them with softprops/action-gh-release (tags containing `-` become prereleases). PRs touching release.yml and workflow_dispatch run the builds without publishing. CI's `vscode-extensions` job also packages the .vsix on every PR. +- `toolchain` and `solc` run with `if: !cancelled()` after `rust`, so a failing integration test does not hide them; they only need the uploaded testbench artifact. +- dos_smoke hex tests can hang on CI runners (seen on dos_pipeline_hex_returns_to_shell_at_default_cycles_per_frame: keys for "EXIT" never reach the guest, CPU halted with IRQC pending=0x0001 enable=0x0008). connect_pec_input applies host key events on a separate `pec-input` thread, so the test races with the guest; under CPU contention an input edge can be lost. Not reproducible locally in 3 full runs. Same symptom as the known 800-cycle failure.