用于使用清单管理本地和远程octopus部署的命令行工具。

octopose的Python项目详细描述


八体式

PyPI - Downloads

octoposeOctopus Deploy的清单/状态驱动部署框架。Octopose允许您基于Octopus Deploy中的发布或部署创建清单文件。

为什么是八字形?

安装

pip install octopose

配置

运行octopose需要各种配置变量,可以在config.master.yaml

OCTOPUS_URI: ""
OCTOPUS_HEADERS:
  "x-octopus-apikey": ""
PROJECTS:
  - ""
STAGING: "~\\StagingLocation"
PACKAGE_SOURCES:
  - ""

使用所需变量创建名为config.yaml的文件副本,并将其复制到~\.octopose\config.yaml

用法

创建清单文件

config.yaml中的projects创建清单文件:

octopose generate

这将基于这些项目和其中的包输出到标准输出清单:

{
    'Projects':
    {
        'Huddle.ABC':
            {
                'Packages': ['Huddle.ABC']
            },
        'Huddle.XYZ':
            {
                'Packages': ['Huddle.XYZ1', 'Huddle.XYZ2']
            }
    },
    'StagingLocation': 'D:\\dev\\huddle\\StagingLocation'
}

基于给定环境中的包生成清单

octopose generate -e uklive

这将添加当前部署到该环境中的版本的特定版本:

{
    'Projects':
    {
        'Huddle.ABC':
            {
                'Packages': ['Huddle.ABC'],
                'Version': '1.0.0'
            },
        'Huddle.XYZ':
            {
                'Packages': ['Huddle.XYZ1', 'Huddle.XYZ2'],
                'Version': '2.3.0'
            }
    },
    'StagingLocation': 'D:\\dev\\huddle\\StagingLocation'
}

生成清单以仅部署某些包

octopose generate -p Huddle.ABC Huddle.XYZ

这只会将指定的项目添加到清单:

{
    'Projects':
    {
        'Huddle.ABC':
            {
                'Packages': ['Huddle.ABC'],
                'Version': '1.0.0'
            },
        'Huddle.XYZ':
            {
                'Packages': ['Huddle.XYZ1', 'Huddle.XYZ2']
            }
    },
    'StagingLocation': 'D:\\dev\\huddle\\StagingLocation'
}

生成清单并忽略某些包

octopose generate -i Tasks Publishing
octopose generate --ignore Tasks 

这将从manfest中删除项目。

将清单保存到文件

octopose generate > manifest.json

部署到本地环境

部署到本地环境有助于使用最新的代码设置开发人员,或复制给定的环境以在开发人员工作站上进行调试。

它读取提供的描述本地环境状态的清单文件。

octopose deploy .\manifest.json

cat .\manifest.json | octopose deploy .\octopose.py

这将从config.yaml中指定的nuget包源中下拉版本(或给定版本)。在给定的版本中运行PreDeploy.ps1Deploy.ps1PostDeploy.ps1执行它们。

命令也可以通过管道连接在一起:

octopose generate | octopose deploy

部署到已知的八达通部署环境

octopose还可用于使用manifest.json文件中指定的版本和版本部署到远程环境,如登台和生产环境。

下面的命令将把提供的manifest.json中描述的状态部署到环境uklive

octopose deploy -e uklive .\manifest.json

--force标志将确保包被重新下载,即使它已经部署到目标环境中。

--wait标志将导致octopose持续轮询octopus部署任务,直到它们完成。

--verbose(或-v)标志将导致octopose*Deploy.ps1文件输出所有日志。否则,如果返回非零退出代码,将只从脚本中产生日志。

octopose deploy -e staging --wait --force --verbose

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
接收com。太阳媒体声音Java中来自MIDI控制器的FastShortMessage,如何解码?   JAVA日志记录:当日志文件将要滚动时,应用程序将暂停   java如何使用循环来重复函数选择   java OpenJPA和存储过程,Weblogic 12c   编码风格什么是正确的方式来使用。Java中的equals方法?   通过tcpsocket将xml从java发送到C#   java对象比JTable效率更高   java在运行时删除标志\半透明\状态   java将一个数均匀随机地分成m个部分   链表的Java数组   javajaxws:在数据库中记录请求和响应   java maven,执行标记,缺少id标记   泛型类中的java泛型转换