Přeskočit na hlavní obsah

Artefakt Renode

Přenosná binární distribuce nástroje Renode, open-source frameworku společnosti Antmicro pro simulaci a virtuální vývoj embedded systémů, spolu s renode-test, jeho test runnerem založeným na Robot Frameworku, který se používá pro integrační/implementační testování simulovaného firmwaru. Tento repozitář využívá Artifact Handler platformy Embedbits k vyhledání, stažení, ověření a konfiguraci Renode v navazujících embedded projektech.

Tento repozitář je podle rolí rozdělen na tři větve/refy — větev main (master), kterou právě čtete, obsahuje pouze tuto dokumentaci; skripty handleru jsou ve větvi Core a verzované binárky jsou publikovány jako GitHub Releases ukotvené ve větvi Bin.


Obsah repozitáře​

main / master
└── README.md ← This document — no other content

Core
└── ArtifactConfig.cmake ← Renode integration logic (artifact init, version lookup, test helper)

Bin (anchor branch — no tracked binary files)
└── (empty commits only; each release tag points here)

Role v platformě​

Tento repozitář je jednou z několika distribucí artefaktů v rámci platformy Embedbits. Celkový tok vypadá takto:

GitHub (Embedbits)
──────────────────────────────────────────────────────────
Artifact-renode
main / master → README only (this document)
Core → ArtifactConfig.cmake
Bin → Anchor branch (empty commits)
Releases → renode-<version>-<platform>.zip + .hash
tagged Bin/<version>-<platform> (platform: Win / Unix)

Renode_Importer.sh publikuje každou verzi Renode jako GitHub Release — označený tagem Bin/<version>-<platform> — a nikoli jako soubor commitnutý do větve Bin. Samotná větev Bin nese pouze prázdné kotvicí commity, na které tagy vydání ukazují.

Platform Artifact Handler v navazujících projektech odkazuje na větev Core jako na Git submodul. Při konfiguraci CMake přečte ArtifactConfig.cmake, aby zjistil, které vydání stáhnout, a poté stáhne a ověří odpovídající asset vydání pro aktuální platformu.


Struktura větví​

Větev / RefObsah
main / masterPouze tento README — žádný funkční obsah
CoreSkript handleru ArtifactConfig.cmake pro použití artefaktu
BinPouze kotvicí větev — nejsou zde commitovány žádné binárky
Release tag Bin/<version>-<platform>GitHub Release obsahující vlastní binární .zip a soubor s kontrolním součtem .hash jako assety vydání, pro platform ∈ Win, Unix

Poznámka: Samotný protokol Embedbits Artifact Handleru není na GitHub Releases vázán — takto jednoduše publikují binárky importní skripty hostované na GitHubu. Na Git hostingu bez ekvivalentního Releases API handler podporuje také zabalené binárky commitnuté přímo jako sledované soubory ve větvi Bin, označené tagem podle verze/platformy (Bin/<version>-<platform>), místo nahrání jako assety vydání. CMake handler obě varianty zpracuje transparentně.

⚠️ Žádná vydání pro macOS (DarwinARM): v aktuální řadě vydání Renode upstream publikuje buildy pro macOS pouze jako diskové obrazy .dmg, nikoli jako prostý archiv tar/zip. Renode_Importer.sh proto platformu DarwinARM neimportuje, dokud upstream nezačne dodávat prostý archiv (nebo dokud se do Common.sh nepřidá podpora rozbalování .dmg).


⚠️ Stažení vydání​

Binárky nejsou uloženy jako sledované soubory ve větvi Bin — naklonujte větev Core pro skripty handleru a binárky stahujte jako assety vydání pro konkrétní tag namísto klonování větve Bin.

# Core handler scripts
git clone --branch Core --single-branch --depth=1 <repository_url> renode-core

# Binary + checksum for one specific version/platform (GitHub Release asset)
gh release download Bin/1.16.1-Unix --repo Embedbits/Artifact-renode --pattern "renode-1.16.1-Unix.*"

Zahrnuté komponenty​

KomponentaPopis
renodeHlavní simulátor/CLI: spouští a provozuje simulované hardwarové platformy, skriptovací konzole, GDB server
renode-testTest runner Robot Frameworku: spouští integrační/implementační sady testů .robot proti simulovanému cíli a vytváří reporty XML/HTML

Použití​

Artefakt se instaluje automaticky během fáze nastavení artefaktů pomocí:

cmake -P Artifacts/Renode/ArtifactConfig.cmake

Skript zajistí, že jsou binárky Renode dostupné, v případě potřeby rozbalí archiv a přidá oba nástroje do systémové proměnné PATH pro následující kroky buildu/testování.

Funkce handleru​

renode_ArtifactInit(ARTIFACT_BIN_PATH)

Inicializuje artefakt: vyhledá binárky renode a renode-test a zpřístupní je prostřednictvím cache proměnných RENODE_EXECUTABLE / RENODE_TEST_EXECUTABLE.

renode_GetArtifactVersion()

Vrací verzi aktuálně vyhodnocených binárek Renode (pomocí renode -v).

Renode_AddTest(TEST_NAME ROBOT_FILE)

Zaregistruje test CTest, který spustí danou sadu .robot prostřednictvím renode-test.


Verzování​

Verze artefaktů přímo odpovídají oficiálním verzím vydání Renode:

1.14.0, 1.15.0, 1.15.3, 1.16.0, 1.16.1, ...

Nové verze publikuje Renode_Importer.sh v repozitáři GithubArtifactsHandler, který stáhne oficiální přenosné binárky Renode, zabalí je do archivů .zip s ověřením SHA-256 a publikuje je jako GitHub Release označený tagem Bin/<version>-<platform> — samotná větev Bin postupuje dál pouze prázdným kotvicím commitem, na který tag ukazuje.


Poznámky​

  • Není nutná instalace — buildy portable-dotnet jsou soběstačné (obsahují přibalený runtime .NET), na cílovém stroji není třeba instalovat samostatný .NET/mono.
  • Offline použití je podporováno, jakmile je artefakt lokálně v cache.
  • V pipelines Azure DevOps se doporučuje cachovat složku artefaktu, aby se zkrátila doba buildu.
  • macOS (DarwinARM) importér v současnosti nepodporuje — viz poznámka výše.

Licence​

Renode je distribuován pod licencí MIT License. Podrobnosti: https://github.com/renode/renode/blob/master/LICENSE


Autoři​

Příspěvky jsou vítány! Otevřete prosím pull request.