TLingC's Zone
TLingC's Zone
Coding企业版部署mkdocs文档出现404解决方法

根据我的上一篇文章“使用Coding企业版自动部署mkdocs文档
”来进行部署mkdocs文档,最近出现了404问题。查看部署记录没有异样。

部署日志

检查再早前的部署记录,有两次是失败的,相比上方的日志输出,多了一行:

2019/08/06 18:15:41 .nojekyll found. No build will be performed.

因此猜测是因为mkdocs部署时自动生成的.nojekyll阻止了coding进行文档部署。

查看mkdocs源码:https://github.com/mkdocs/mkdocs/blob/master/mkdocs/utils/ghp_import.py

def add_nojekyll(pipe):
    write(pipe, enc('M 100644 inline .nojekyll\n'))
    write(pipe, enc('data 0\n'))
    write(pipe, enc('\n'))
def run_import(srcdir, branch, message, nojekyll):
    cmd = ['git', 'fast-import', '--date-format=raw', '--quiet']
    kwargs = {"stdin": sp.PIPE}
    if sys.version_info >= (3, 2, 0):
        kwargs["universal_newlines"] = False
    pipe = sp.Popen(cmd, **kwargs)
    start_commit(pipe, branch, message)
    for path, _, fnames in os.walk(srcdir):
        for fn in fnames:
            fpath = os.path.join(path, fn)
            fpath = normalize_path(fpath)
            gpath = gitpath(os.path.relpath(fpath, start=srcdir))
            add_file(pipe, fpath, gpath)
    if nojekyll:
        add_nojekyll(pipe)
    write(pipe, enc('\n'))
    pipe.stdin.close()
    if pipe.wait() != 0:
        sys.stdout.write(enc("Failed to process commit.\n"))


def ghp_import(directory, message, remote='origin', branch='gh-pages', force=False):

    if not try_rebase(remote, branch):
        log.error("Failed to rebase %s branch.", branch)

    nojekyll = True

    run_import(directory, branch, message, nojekyll)

    cmd = ['git', 'push', remote, branch]

    if force:
        cmd.insert(2, '--force')

    proc = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE)

    out, err = proc.communicate()
    result = proc.wait() == 0

    return result, dec(err)

可见在上述run_importghp_import函数中,使用nojekyll变量来标识是否要写入nojekyll文件,而该变量是写死在代码里的。因此fork一份代码,修改上述对应文件,把上述引用的代码的27行中nojekyll值改为False。

然后把Jenkinsfile中pip install mkdocs改成安装上面fork的仓库的地址即可,如:

pip install git+https://github.com/YOUR_USERNAME/mkdocs.git@master

保存即可。

另外,如希望跟随mkdocs官方进行升级,还需自己维护该仓库。

赞赏
首页      开发      Coding企业版部署mkdocs文档出现404解决方法

发表评论

textsms
account_circle
email

TLingC's Zone

Coding企业版部署mkdocs文档出现404解决方法
根据我的上一篇文章“使用Coding企业版自动部署mkdocs文档 ”来进行部署mkdocs文档,最近出现了404问题。查看部署记录没有异样。 部署日志 检查再早前的部署记录,有两次是失败的,相比上…
扫描二维码继续阅读
2019-08-26
标签
功能