Перейти до основного вмісту

Артефакт Unity

Портативний дистрибутив вихідного коду Unity (ThrowTheSwitch/Unity) — легковагового фреймворку для модульного тестування на C, розробленого для embedded-цілей. Цей репозиторій використовується Embedbits Platform Artifact Handler для пошуку, завантаження, перевірки та налаштування Unity у подальших embedded-проєктах — як правило, разом з артефактом CMock (генерація моків) та артефактом Ruby (інтерпретатор для скриптів-генераторів CMock / Unity).

Цей репозиторій поділено на три гілки/посилання за ролями: гілка main (master), яку ви зараз читаєте, містить лише цю документацію; скрипти handler містяться в гілці Core, а версіоновані пакети з вихідним кодом публікуються як GitHub Releases, прив'язані до гілки Bin.


Вміст репозиторію​

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

Core
├── ArtifactConfig.cmake ← Artifact metadata (name, version constraints, asset naming)
└── CMakeUnityDefaults.cmake ← Unity integration logic (library target / include setup)

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

Роль у платформі​

GitHub (ThrowTheSwitch) GitHub (Embedbits)
────────────────────────────────────── ──────────────────────────────────────────
ThrowTheSwitch/Unity Artifact-unity
tag "v2.6.1" (source) ──► main / master → README only (this document)
Core → ArtifactConfig.cmake, CMakeUnityDefaults.cmake
Bin → Anchor branch (empty commits)
Releases → unity-<version>.zip + .hash
tagged Bin/<version>

Unity_Importer.sh клонує початковий репозиторій для кожного тега релізу (vX.Y.Z, релізні кандидати ігноруються), перевіряє, що checkout відповідає тегу, видаляє метадані .git, додає текстовий файл VERSION і пакує дерево вихідного коду в zip. Unity — це портативний код на C, який компілюється безпосередньо в тестовий проєкт, тому релізи не мають суфікса платформи — вони тегуються просто як Bin/<version> (префікс v відкидається).


Структура гілок​

Гілка / посиланняВміст
main / masterЛише цей README — жодного функціонального вмісту
CoreСкрипти CMake handler для використання артефакту
BinЛише якірна гілка — бінарні файли тут не комітяться
Тег релізу Bin/<version>GitHub Release із вихідним пакетом .zip та файлом контрольної суми .hash

Примітка: На Git-хостингу без Releases API (Azure DevOps) той самий імпортер комітить .zip + .hash безпосередньо в гілку Bin і тегує цей коміт як Bin/<version>. Handler для CMake прозоро розпізнає обидві форми.


Отримання релізу​

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

# Source package + checksum for one specific version (GitHub Release asset)
gh release download Bin/2.6.1 --repo Embedbits/Artifact-unity --pattern "unity-2.6.1.*"

Структура пакета​

unity-<version>.zip
└── unity/
├── VERSION ← plain-text version, e.g. "2.6.1"
├── src/ ← unity.c, unity.h, unity_internals.h
├── extras/ ← optional add-ons (fixture, memory, bdd)
├── auto/ ← Ruby helper scripts (test runner generator, ...)
└── ... ← upstream docs, examples, build files

Скрипти Ruby в auto/ (наприклад, generate_test_runner.rb) потребують інтерпретатора Ruby — скористайтеся артефактом Ruby.


Версіонування​

Версії артефакту безпосередньо відповідають офіційним тегам релізів Unity без префікса v:

2.5.2, 2.6.0, 2.6.1, 2.7.0, ...

Ліцензія​

Unity розповсюджується за ліцензією MIT. Докладніше: https://github.com/ThrowTheSwitch/Unity/blob/master/LICENSE.txt


Автори​

Запрошуємо до співпраці! Будь ласка, відкрийте pull request.