Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить chocolatey пакет для распространения шрифта #149

Closed
3 tasks done
sergey-s-betke opened this issue Apr 13, 2016 · 17 comments
Closed
3 tasks done

Comments

@sergey-s-betke
Copy link
Contributor

sergey-s-betke commented Apr 13, 2016

chocolatey - для установки шрифтов (через .msi).

Итого, задачи:

  • сборка,
  • тестирование и
  • публикация chocolatey пакета на базе .msi инсталлятора проекта
@sergey-s-betke sergey-s-betke self-assigned this Apr 13, 2016
@sergey-s-betke sergey-s-betke changed the title добавить NuGet и chocolatey пакеты для распространения шрифта Добавить NuGet и chocolatey пакеты для распространения шрифта Apr 26, 2016
@sergey-s-betke
Copy link
Contributor Author

Замечательный пример упаковки msi в chocolatey пакет: https://github.com/chocolatey/ChocolateyGUI/tree/develop/ChocolateyPackage

@sergey-s-betke
Copy link
Contributor Author

Для публикации потребуется chocolatey API key: https://chocolatey.org/docs/commands-apikey

@sergey-s-betke
Copy link
Contributor Author

Необходима лицензия... https://habrahabr.ru/post/243091/

@sergey-s-betke
Copy link
Contributor Author

Стоит в дальнейшем подумать о применении EUPL: https://en.wikipedia.org/wiki/European_Union_Public_Licence

@sergey-s-betke
Copy link
Contributor Author

Во-первых, пришлось использовать nuget вместо choco для упаковки, потому как choco не позволяет даже указать путь, по которому будет размещён полученный файл. Да и куда гибче nuget.

Да, шаблоны $version$ в .nuspec при выполнении nuget pack заменяются успешно. В том числе - и в url. Но только в .nuspec!, в .ps1 файлах никаких подстановок не происходит. И, насколько я успел изучить файлы других пакетов, везде все версии и прочие изменяемые реквизиты указаны явно. И это плохо.

Пример автоматизированной подготовки пакетов для chocolatey: https://github.com/ferventcoder/chocolatey-packages

Используется механизм "шаблонов", несколько переработанный. Не хотелось бы так всё усложнять для такой простой, на первый взгляд, задачи.

@sergey-s-betke
Copy link
Contributor Author

Есть идея. Попробую добраться из chocolatey*.ps1 файлов до .nuspec файла. А в нём указать необходимые мне свойства, в частности - url для загрузки дистрибутива.

А свойства в .nuspec можно добавлять через командную строку nuget, насколько я понимаю.

Итак, для начала попробуем добавить свои свойства в .nuspec при генерации пакета.

@sergey-s-betke
Copy link
Contributor Author

Добавить свой элемент в метаданные в .nuspec не получается, nuget его валидирует по схеме.

https://docs.nuget.org/create/nuspec-reference

@sergey-s-betke
Copy link
Contributor Author

Всё-таки, придётся идти сложным путём и использовать какой-либо шаблонизатор перед сборкой пакета. Может быть - и шаблоны choco здесь подойдут...

Стоит посмотреть на https://github.com/chocolatey/chocolateytemplates

@sergey-s-betke
Copy link
Contributor Author

@sergey-s-betke
Copy link
Contributor Author

С подготовкой chocolatey пакета разобрался. Хорошо бы его и протестировать... https://github.com/chocolatey/chocolatey-test-environment

@sergey-s-betke
Copy link
Contributor Author

Однако, загружать несколько гигабайт образа... AppVeyor не поймут...

Есть смысл воспользоваться скриптами из указанного репозитория, и тесты провести собственно на build сервере, хотя это и не совсем чистое тестирование...

Кстати, тестирование chocolatey пакета позволит протестировать и msi пакет.

@sergey-s-betke
Copy link
Contributor Author

Более простые варианты тестирования: https://github.com/chocolatey/choco/wiki/CreatePackages

@sergey-s-betke
Copy link
Contributor Author

sergey-s-betke commented Jul 25, 2016

Установка собранного пакета из каталога с пакетом:

choco install packageName -fdvy -pre -s "%cd%"

@sergey-s-betke
Copy link
Contributor Author

Для тестов логично так же подготовить соответствующие цели в makefile. Скажем - test. Для подпроектов - test-<подпроект>. И запускать тогда тесты в appveyor будем скриптом (http://www.appveyor.com/docs/appveyor-yml).

@sergey-s-betke
Copy link
Contributor Author

sergey-s-betke commented Jul 25, 2016

Но! По-прежнему есть проблема: пакет наш - web пакет, предусматривающий загрузку .msi из релизов на github. Но тесты выполняются ДО распространения! Как же лучше организовать тестирование пакета в таком случае?

Не будет проблем, если включить msi в состав пакета... Кстати, в этом случае можно было бы обойтись и nuget, шаблонизатор chocopkgup не потребовался бы.

Склоняюсь к варианту переработки пакета с включением msi в состав пакета. Возможно, оставлю оба варианта пакета, но с разными целями, разумеется.

@sergey-s-betke
Copy link
Contributor Author

Будет правильным в AppVeyor публиковать информацию о результатах тестирования в консоль из скрипта: http://www.appveyor.com/docs/build-worker-api#add-tests

@sergey-s-betke
Copy link
Contributor Author

С отражением информации о результатах тестирования есть проблемы из-за chocolatey: chocolatey/choco#876

sergey-s-betke added a commit that referenced this issue Jul 26, 2016
…chocolatey в консоль AppvVeyor (#149)

- исправлена публикация артефактов
sergey-s-betke added a commit that referenced this issue Jul 27, 2016
* добавил файл лицензии Apache 2.0
* добавлен экспорт целей в корневой проект в msm и msi подпроектах
+ добавил проект для сборки пакета для chocolatey для установки шрифтов в Windows (через msi) (#149)
* выделил nuget.mk
* нормализовал подключение модулей в ITG.MakeUtils
* выделил chocolatey.mk
+ добавлена публикация артефактов при сборке на appveyor (#226)
+ добавлена публикация chocolatey пакета (msi) (#149)
* добавлен `exportGlobalVariables`
* `ProductCode` и `UpgradeCode` перенесены в makefile
* подготовлена поддержка тестирования в сценарии сборки (#149)
+ добавлено тестирование установки и удаления chocolatey пакета (#149)
* при генерации chocolatey пакета указываю prerelease suffix, есть собираем не релиз (#149)
+ добавлена публикация информации о результатах тестирования пакета chocolatey в консоль AppvVeyor (#149)
@sergey-s-betke sergey-s-betke modified the milestones: 0.7.5, 0.7.4 Jul 27, 2016
@sergey-s-betke sergey-s-betke changed the title Добавить NuGet и chocolatey пакеты для распространения шрифта Добавить chocolatey пакет для распространения шрифта Jul 27, 2016
@sergey-s-betke sergey-s-betke mentioned this issue Jul 27, 2016
1 task
sergey-s-betke added a commit that referenced this issue Aug 3, 2016
* добавил файл лицензии Apache 2.0
* добавлен экспорт целей в корневой проект в msm и msi подпроектах
+ добавил проект для сборки пакета для chocolatey для установки шрифтов в Windows (через msi) (#149)
* выделил nuget.mk
* нормализовал подключение модулей в ITG.MakeUtils
* выделил chocolatey.mk
+ добавлена публикация артефактов при сборке на appveyor (#226)
+ добавлена публикация chocolatey пакета (msi) (#149)
* добавлен `exportGlobalVariables`
* `ProductCode` и `UpgradeCode` перенесены в makefile
* подготовлена поддержка тестирования в сценарии сборки (#149)
+ добавлено тестирование установки и удаления chocolatey пакета (#149)
* при генерации chocolatey пакета указываю prerelease suffix, есть собираем не релиз (#149)
+ добавлена публикация информации о результатах тестирования пакета chocolatey в консоль AppvVeyor (#149)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant