Выпуск Oleafly
Соберите полный черновик из тега версии, проверьте каждый артефакт платформы, затем опубликуйте через защищённый рабочий процесс выпуска.
Релизы Oleafly проходят два отдельных этапа. Тег версии собирает и проверяет черновик. Мейнтейнер публикует тот же черновик отдельным запуском рабочего процесса.
Отправка изменений в main запускает CI, но не создаёт релиз.
Сборка черновика
Заголовок раздела «Сборка черновика»Начните с актуальной ветки main и зелёным CI.
git switch maingit pull --ff-only./scripts/bump-version.sh 0.3.6git commit -am "chore: release v0.3.6"git push origin maingit tag v0.3.6git push origin v0.3.6Тег запускает .github/workflows/release.yml. Он собирает эти целевые платформы:
| Платформа | Установщики |
|---|---|
| macOS Apple Silicon | .dmg |
| Windows x64 | .msi и -setup.exe |
| Linux x64 | .AppImage и .deb |
| Linux ARM64 | .AppImage и .deb |
Каждая платформа загружает и проверяет свои закреплённые сайдкары компиляторов. Затем рабочий процесс объединяет все четыре фрагмента обновления в один latest.json. Черновик считается готовым, только когда присутствуют все требуемые установщики и записи обновления.
Проверка черновика
Заголовок раздела «Проверка черновика»Откройте черновик на странице релизов GitHub (откроется в новой вкладке). Проверьте примечания к релизу, имена установщиков, контрольные суммы, подписи и latest.json. Не публикуйте неполный черновик.
Публикация
Заголовок раздела «Публикация»Откройте Actions → Release → Run workflow. Введите тот же тег и выберите Publish the release.
Запуск публикации повторяет сборку и проверки артефактов. Он также выполняет живые контрактные тесты против Anthropic и Google на релиз-кандидате. Последнее задание отказывается публиковать, если отсутствует хотя бы одна поддерживаемая платформа или полная лента обновления.
Публикация делает latest.json видимым для установленных приложений. Относитесь к этому как к необратимому рабочему действию. Если запуск публикации завершился неудачей, оставьте релиз черновиком, устраните причину и запустите его снова.
Номера версий
Заголовок раздела «Номера версий»Oleafly следует семантическому версионированию:
- Патч, например с
0.3.5до0.3.6, для совместимых исправлений. - Минорная, например с
0.3.5до0.4.0, для совместимых функций. - Мажорная, например с
0.3.5до1.0.0, для ломающих изменений или первого стабильного релиза.
Важные проверки
Заголовок раздела «Важные проверки»- Тег должен соответствовать
package.json,src-tauri/tauri.conf.json,src-tauri/Cargo.tomlиsrc-tauri/Cargo.lock. Используйтеscripts/bump-version.shвместо раздельного редактирования. - Примечания к релизу берутся из раздела соответствующей версии в
CHANGELOG.md. - Не используйте опубликованный тег повторно. Для неудачного черновика исправьте ветку и создайте новую версию, если нет явной причины заменить неопубликованный тег.
- Подписывание и нотаризация macOS используют секреты релиза Apple. Windows Authenticode использует Azure Artifact Signing, когда его секреты настроены. Подписи обновления используют отдельный ключ подписывания Tauri.
См. Автообновления о подписывании и откате обновлений. Инструкции по установке для пользователей — в разделе Скачать и установить.