Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 31 additions & 18 deletions .github/workflows/eosim-sanity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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"
37 changes: 19 additions & 18 deletions .github/workflows/qemu-test.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name: QEMU Simulation Test
name: EoSim Platform CLI Validation

on:
schedule:
- cron: '0 5 * * *'
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
Expand All @@ -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
Expand All @@ -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

Expand All @@ -74,30 +73,32 @@ 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
steps:
- 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"
35 changes: 18 additions & 17 deletions .github/workflows/simulation-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Simulation Test
name: EoSim CLI Validation

on:
schedule:
Expand All @@ -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
Expand All @@ -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

Expand All @@ -76,30 +75,32 @@ 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()
steps:
- 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"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ Thumbs.db
build/
build-*/
dist/
out/
node_modules/
__pycache__/
.venv/
Expand Down
Loading