Фон
Мой сервер Bamboo работает в Linux. Я использую Bamboo для сборки исполняемых установщиков и исходных текстов для приложения Python.
Я не могу собрать установщики MSI для своего пакета Python из Linux, поэтому я запускаю Bamboo Remote Agent в качестве службы в Windows 7 на 64-разрядной версии на другом компьютере. Этот удаленный агент настроен для обеспечения возможности создания двоичных файлов Windows, поэтому Bamboo запускает сборки MSI & EXE на нем.
.zip исходный дистрибутив и .exe установщик успешно созданы. Однако мой сценарий сборки завершается неудачно, когда он пытается собрать установщик MSI.
Сценарий сборки
Скрипт сборки представляет собой очень простой командный файл:
python setup.py bdist --formats=zip
IF %ERRORLEVEL% NEQ 0 EXIT /B 1
python setup.py bdist_wininst
IF %ERRORLEVEL% NEQ 0 EXIT /B 1
echo ***Building msi installer***
echo.
python setup.py bdist_msi
IF %ERRORLEVEL% NEQ 0 EXIT /B 1
Error
Ниже приведена часть моего журнала сборки (для контекста):
28-Apr-2011 13:26:46 ***Building msi installer***
...
28-Apr-2011 13:26:46 creating build\bdist.win32\msi\Lib\site-packages
28-Apr-2011 13:26:46 creating build\bdist.win32\msi\Lib\site-packages\my_pkg
...
28-Apr-2011 13:26:46 running install_egg_info
28-Apr-2011 13:26:46 Writing build\bdist.win32\msi\Lib\site-packages\my_pkg-0.4.0b23-py2.7.egg-info
Я получаю следующую трассировку исключений из Python:
Traceback (most recent call last):
File "setup.py", line 38, in <module>
'my_pkg': ['default_config.cfg']},
File "c:\python27\lib\distutils\core.py", line 152, in setup
dist.run_commands()
File "c:\python27\lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "c:\python27\lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "c:\python27\lib\distutils\command\bdist_msi.py", line 243, in run
sversion, author)
File "c:\python27\lib\msilib\__init__.py", line 139, in init_database
db = OpenDatabase(name, MSIDBOPEN_CREATE)
_msi.MSIError: unknown error 65f
0x65f
переводится в 1631
, что - если мой Google Fu сильный - может быть "Error 1631: The Windows Installer service failed to start"
.
Дальнейшее тестирование
Если я захожу в каталог сборки агента Bamboo на машине, выполняющей сборку, и вручную запускаю пакетный файл сценария сборки из Проводника Windows, сборка .msi прошла успешно.
Обратите внимание, что все это работало в предыдущей сборке с той же версией репозитория SVN , но с тех пор мне пришлось перенести свои системы разработки и, возможно, непреднамеренно изменить некоторые конфигурации в Windows (или, возможно, Обновление Windows сломало его).