runner.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:jenkins-yml 作者: peopledoc 项目源码 文件源码
def unconfined(job):
    # The unconfined runner even allow to choose the runner right from the yml.
    runner = job.config.pop('runner', None)
    if runner:
        call_runner(runner, job)
    else:
        logger.debug('Executing unconfined.')

    entry = os.environ.get('YML_SCRIPT', 'script')
    if entry not in {'script', 'after_script'}:
        logger.error('%r is not a valid YML entry.', entry)
        sys.exit(1)

    script = job.config.get(entry)
    if not script:
        logger.error('Missing script.')
        sys.exit(0)
    script = script.strip() + '\n'

    script_name = '_job'
    with open(script_name, 'w') as fo:
        fo.write("#!/bin/bash -eux\n")
        fo.write(script)
        os.chmod(
            fo.name,
            stat.S_IREAD | stat.S_IWUSR | stat.S_IXUSR
        )

    environ = dict(
        {k: str(v) for k, v in job.config['parameters'].items()},
        CI='1',
        **os.environ
    )
    os.execle(script_name, environ)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号