我正在尝试向 Kubernetes 的 Docker 映像写入一个任务,该任务deploy
检查是否存在先决条件(例如是否存在 docker、gcloud 和 git)并且没有未提交的更改。
到目前为止,这是我汇总的内容:
@task("deploy", description="Deploy the Docker image to Kubernetis")
@depends("build")
def deploy(project, logger):
assert_can_execute(['docker', '-v'], 'docker', 'deploy')
assert_can_execute(['gcloud', '-v'], 'gcloud', 'deploy')
assert_can_execute(['git', '-version'], 'git', 'deploy')
assert_can_execute(['zsh',
'if [[ ! -z $(git diff --stat) ]] || [[ ! -z $(git diff --stat --cached) ]]; then return 127; else return 0; fi'
], 'no uncommitted changes', 'deploy')
logger.info("Deploying Docker image '{0}'".format(project.name))
subprocess.check_output(
'docker build -t <remote>/{0}-service:latest .'.format(project.name), shell=True)
subprocess.check_output(
'gcloud docker -- push <remote>/{0}-service:latest'.format(project.name), shell=True)
该任务实际上部署正确,但我无法检查是否存在未提交的更改可以工作......我找不到足够的文档assert_can_execute
......任何人都可以帮忙吗?
被指控的陈述如下:
assert_can_execute(['zsh',
'if [[ ! -z $(git diff --stat) ]] || [[ ! -z $(git diff --stat --cached) ]]; then return 127; else return 0; fi'
], 'no uncommitted changes', 'deploy')
请注意,如果我在控制台上运行代码,如果没有未提交的更改,我正确地得到错误级别 0,否则为 127……我错在哪里?
提前致谢!