diff --git a/.github/workflows/eosim-sanity.yml b/.github/workflows/eosim-sanity.yml index 65c6075..140caea 100644 --- a/.github/workflows/eosim-sanity.yml +++ b/.github/workflows/eosim-sanity.yml @@ -6,7 +6,8 @@ on: workflow_dispatch: env: - EOSIM_VERSION: "0.1.0" + # Install an existing immutable EoSim release tag directly from source. + EOSIM_VERSION: "3.0.1" permissions: contents: read @@ -30,18 +31,20 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install EoSim - run: pip install "eosim @ https://github.com/embeddedos-org/EoSim/releases/download/v${{ env.EOSIM_VERSION }}/eosim-${{ env.EOSIM_VERSION }}-py3-none-any.whl" + run: | + git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git "${{ runner.temp }}/eosim" + pip install -e "${{ runner.temp }}/eosim" - name: Verify installation run: | eosim --version eosim list - - name: Validate all platform configs + - name: Exercise registry and doctor commands run: | eosim list eosim doctor nested-simulation: - name: Nested Simulation (${{ matrix.platform }}) + name: EoSim run smoke check (${{ matrix.platform }}) needs: install-validate runs-on: ubuntu-latest strategy: @@ -64,13 +67,13 @@ jobs: run: | git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git /tmp/eosim pip install -e /tmp/eosim - - name: Simulate ${{ matrix.platform }} + - name: Exercise EoSim run command (${{ matrix.platform }}) run: | eosim run ${{ matrix.platform }} --headless --timeout 10 - echo "${{ matrix.platform }}: PASSED" + echo "${{ matrix.platform }}: eosim run exited successfully (execution may be a dry run)" nested-guest-install: - name: Guest OS Install (${{ matrix.guest }}) + name: Linux platform run smoke check (${{ matrix.guest }}) needs: install-validate runs-on: ubuntu-latest strategy: @@ -92,11 +95,11 @@ jobs: run: | git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git /tmp/eosim pip install -e /tmp/eosim - - name: Boot guest and test EoSim inside + - name: Exercise EoSim run command for ${{ matrix.guest }} run: | - echo "=== Nested Guest: ${{ matrix.guest }} ===" + echo "=== Platform run smoke check: ${{ matrix.guest }} ===" eosim run ${{ matrix.platform }} --headless --timeout 15 - echo "${{ matrix.guest }}: PASSED" + echo "${{ matrix.guest }}: eosim run exited successfully (execution may be a dry run)" windows-sanity: name: Windows Sanity @@ -109,7 +112,8 @@ jobs: python-version: "3.12" - name: Test EoSim on Windows run: | - pip install "eosim @ https://github.com/embeddedos-org/EoSim/releases/download/v${{ env.EOSIM_VERSION }}/eosim-${{ env.EOSIM_VERSION }}-py3-none-any.whl" + git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git "${{ runner.temp }}/eosim" + pip install -e "${{ runner.temp }}/eosim" eosim --version eosim list eosim doctor @@ -125,7 +129,8 @@ jobs: python-version: "3.12" - name: Test EoSim on macOS run: | - pip install "eosim @ https://github.com/embeddedos-org/EoSim/releases/download/v${{ env.EOSIM_VERSION }}/eosim-${{ env.EOSIM_VERSION }}-py3-none-any.whl" + git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git "${{ runner.temp }}/eosim" + pip install -e "${{ runner.temp }}/eosim" eosim --version eosim list eosim doctor @@ -142,12 +147,20 @@ jobs: echo " EoSim Sanity Results" echo "════════════════════════════════════════════════" echo "Install & Validate (3 OS × 3 Py): ${{ needs.install-validate.result }}" - echo "Nested Simulation (7 platforms): ${{ needs.nested-simulation.result }}" - echo "Nested Guest Install (3 guests): ${{ needs.nested-guest-install.result }}" + echo "Run-command smoke checks (7): ${{ needs.nested-simulation.result }}" + echo "Linux platform smoke checks (3): ${{ needs.nested-guest-install.result }}" echo "Windows Sanity: ${{ needs.windows-sanity.result }}" echo "macOS Sanity: ${{ needs.macos-sanity.result }}" echo "════════════════════════════════════════════════" - if [ "${{ needs.install-validate.result }}" != "success" ]; then - echo "❌ Install/validate failed"; exit 1 - fi - echo "✅ All EoSim sanity checks passed" + for result in \ + "${{ needs.install-validate.result }}" \ + "${{ needs.nested-simulation.result }}" \ + "${{ needs.nested-guest-install.result }}" \ + "${{ needs.windows-sanity.result }}" \ + "${{ needs.macos-sanity.result }}"; do + if [ "$result" != "success" ]; then + echo "❌ A required EoSim installation or CLI smoke job failed or was skipped" + exit 1 + fi + done + echo "✅ All EoSim installation and CLI smoke checks passed" diff --git a/.github/workflows/qemu-test.yml b/.github/workflows/qemu-test.yml index 3492aa8..dbe967b 100644 --- a/.github/workflows/qemu-test.yml +++ b/.github/workflows/qemu-test.yml @@ -1,4 +1,4 @@ -name: QEMU Simulation Test +name: EoSim Platform CLI Validation on: schedule: @@ -6,7 +6,8 @@ on: workflow_dispatch: env: - EOSIM_VERSION: "0.1.0" + # Install an existing immutable EoSim release tag directly from source. + EOSIM_VERSION: "3.0.1" permissions: contents: read @@ -17,7 +18,7 @@ concurrency: jobs: simulate: - name: EoSim ${{ matrix.platform }} + name: EoSim run smoke check (${{ matrix.platform }}) runs-on: ubuntu-latest strategy: fail-fast: false @@ -40,24 +41,22 @@ jobs: run: | git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git /tmp/eosim pip install -e /tmp/eosim - - name: Validate platform + - name: Load platform registry run: eosim list - - name: Simulate ${{ matrix.platform }} + - name: Exercise EoSim run command (${{ matrix.platform }}) run: | - echo "=== EoSim Simulation: ${{ matrix.platform }} ===" + echo "=== EoSim run-command smoke check: ${{ matrix.platform }} ===" eosim run ${{ matrix.platform }} --headless --timeout 15 - echo "${{ matrix.platform }}: PASSED" - - name: Run platform tests - run: eosim test ${{ matrix.platform }} - continue-on-error: true + echo "${{ matrix.platform }}: eosim run exited successfully (execution may be a dry run)" - name: Collect artifacts + if: always() run: | mkdir -p out eosim info ${{ matrix.platform }} > out/${{ matrix.platform }}-info.txt 2>&1 || true - uses: actions/upload-artifact@v4 if: always() with: - name: qemu-sim-${{ matrix.platform }} + name: eosim-validation-${{ matrix.platform }} path: out/ retention-days: 7 @@ -74,14 +73,16 @@ jobs: with: python-version: "3.12" - name: Install EoSim - run: pip install "eosim @ https://github.com/embeddedos-org/EoSim/releases/download/v${{ env.EOSIM_VERSION }}/eosim-${{ env.EOSIM_VERSION }}-py3-none-any.whl" - - name: Validate all platforms + run: | + git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git "${{ runner.temp }}/eosim" + pip install -e "${{ runner.temp }}/eosim" + - name: Exercise EoSim registry and doctor commands run: | eosim list eosim doctor sanity-gate: - name: QEMU Simulation Gate + name: EoSim Platform Validation Gate if: always() needs: [simulate, cross-platform-verify] runs-on: ubuntu-latest @@ -89,15 +90,15 @@ jobs: - name: Results run: | echo "════════════════════════════════════════════" - echo " QEMU Simulation Results (via EoSim)" + echo " EoSim CLI Validation Results" echo "════════════════════════════════════════════" - echo "Simulation (8 platforms): ${{ needs.simulate.result }}" + echo "Run-command smoke checks (8): ${{ needs.simulate.result }}" echo "Cross-Platform (Win/Lin/Mac): ${{ needs.cross-platform-verify.result }}" echo "════════════════════════════════════════════" if [ "${{ needs.simulate.result }}" != "success" ]; then - echo "❌ Simulation failed"; exit 1 + echo "❌ EoSim run-command validation failed"; exit 1 fi if [ "${{ needs.cross-platform-verify.result }}" != "success" ]; then echo "❌ Cross-platform verification failed"; exit 1 fi - echo "✅ All QEMU simulation checks passed" + echo "✅ All EoSim CLI validation checks passed" diff --git a/.github/workflows/simulation-test.yml b/.github/workflows/simulation-test.yml index 4242cc8..ec4c786 100644 --- a/.github/workflows/simulation-test.yml +++ b/.github/workflows/simulation-test.yml @@ -1,4 +1,4 @@ -name: Simulation Test +name: EoSim CLI Validation on: schedule: @@ -10,14 +10,15 @@ concurrency: cancel-in-progress: false env: - EOSIM_VERSION: "0.1.0" + # Install an existing immutable EoSim release tag directly from source. + EOSIM_VERSION: "3.0.1" permissions: contents: read jobs: simulate: - name: Simulate (${{ matrix.platform }}) + name: EoSim run smoke check (${{ matrix.platform }}) runs-on: ubuntu-latest strategy: fail-fast: false @@ -43,23 +44,21 @@ jobs: run: | git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git /tmp/eosim pip install -e /tmp/eosim - - name: Validate platform + - name: Load platform registry run: eosim list - - name: Run simulation + - name: Exercise EoSim run command run: | - echo "=== EoSim: ${{ matrix.platform }} ===" + echo "=== EoSim run-command smoke check: ${{ matrix.platform }} ===" eosim run ${{ matrix.platform }} --headless --timeout 15 - - name: Run platform tests - run: eosim test ${{ matrix.platform }} - continue-on-error: true - name: Collect artifacts + if: always() run: | mkdir -p out eosim info ${{ matrix.platform }} > out/${{ matrix.platform }}-info.txt 2>&1 || true - uses: actions/upload-artifact@v4 if: always() with: - name: sim-${{ matrix.platform }} + name: eosim-validation-${{ matrix.platform }} path: out/ retention-days: 7 @@ -76,14 +75,16 @@ jobs: with: python-version: "3.12" - name: Install EoSim - run: pip install "eosim @ https://github.com/embeddedos-org/EoSim/releases/download/v${{ env.EOSIM_VERSION }}/eosim-${{ env.EOSIM_VERSION }}-py3-none-any.whl" - - name: Validate all platforms + run: | + git clone --depth 1 --branch v${{ env.EOSIM_VERSION }} https://github.com/embeddedos-org/EoSim.git "${{ runner.temp }}/eosim" + pip install -e "${{ runner.temp }}/eosim" + - name: Exercise EoSim registry and doctor commands run: | eosim list eosim doctor sanity-gate: - name: Simulation Gate + name: EoSim CLI Validation Gate runs-on: ubuntu-latest needs: [simulate, cross-platform] if: always() @@ -91,15 +92,15 @@ jobs: - name: Results run: | echo "════════════════════════════════════════════" - echo " EoSim Simulation Results — EIPC" + echo " EoSim CLI Validation Results — EIPC" echo "════════════════════════════════════════════" - echo "Simulation (11 platforms): ${{ needs.simulate.result }}" + echo "Run-command smoke checks (11): ${{ needs.simulate.result }}" echo "Cross-Platform (Win/Lin/Mac): ${{ needs.cross-platform.result }}" echo "════════════════════════════════════════════" if [ "${{ needs.simulate.result }}" != "success" ]; then - echo "❌ Simulation failed"; exit 1 + echo "❌ EoSim run-command validation failed"; exit 1 fi if [ "${{ needs.cross-platform.result }}" != "success" ]; then echo "❌ Cross-platform validation failed"; exit 1 fi - echo "✅ All simulation checks passed" + echo "✅ All EoSim CLI validation checks passed" diff --git a/.gitignore b/.gitignore index b58ddd2..49ef69d 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ Thumbs.db build/ build-*/ dist/ +out/ node_modules/ __pycache__/ .venv/