Bitbucket Pipelines中OpenEdx的持续集成失败

76次阅读
没有评论

问题描述

正在尝试使用Bitbucket Pipelines为他的OpenEdx站点设置持续集成流程。他在bitbucket-pipelines.yml文件中使用的脚本如下所示。他只是尝试在LMS(主题)上设置构建过程,以便每当有人在站点的前端进行任何更改时,构建会更新paver资源并重新编译资源。问题是,在paver更新资源时失败,并给出以下错误:

python manage.py lms --settings=devstack_docker print_setting  STATIC_ROOT 2>/dev/null Build failed running  pavelib.assets.update_assets: Subprocess return code: 1

有解决方案吗?

image: python:3.5.6 definitions:  services:    docker:      memory: 7168options:  size: 2x  # all steps in this repo get 8GB memorypipelines:  default:    - step:         services:          - docker        script:          # Upgrade Docker Compose to the latest version test          - python --version          - export DOCKER_COMPOSE_VERSION=1.13.0          - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose          - chmod +x docker-compose          - mv docker-compose /usr/local/bin          - export OPENEDX_RELEASE=hawthorn.master          - git clone https://github.com/sanjaysample/devstack.git          - cd devstack           - git checkout open-release/hawthorn.master          - make dev.checkout          - make requirements          - make dev.clone           - ls          - make pull          - make dev.up          - sleep 60 # LMS needs like 60 seconds to come up          - docker cp ../metronic edx.devstack.lms:/edx/app/edxapp/edx-platform/themes          - docker cp ../pavelib edx.devstack.lms:/edx/app/edxapp/edx-platform          - wget https://raw.githubusercontent.com/sumbul03/edx-theme/master/lms.env.json          - docker cp lms.env.json edx.devstack.lms:/edx/app/edxapp/lms.env.json          - rm lms.env.json          - docker cp edx.devstack.lms:/edx/app/edxapp/lms.env.json .          - cat lms.env.json          - docker ps          - docker-compose restart lms          - docker-compose exec -T lms bash -c 'source /edx/app/edxapp/edxapp_env && cd /edx/app/edxapp/edx-platform && git init && git remote add origin https://github.com/edx/edx-platform.git && git fetch origin open-release/hawthorn.master && git checkout -f open-release/hawthorn.master && paver install_prereqs && paver update_assets lms --settings=devstack_docker --debug || true'

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据问题描述,作者已经解决了问题,通过在docker-compose.yml文件中使用绝对路径来解决了问题。这样做确保了从正确的目录中获取文件,从而解决了问题。

方案2

关于您提到的问题,Bitbucket Pipelines是否会在语法错误时失败,答案是是的。Bitbucket Pipelines会在构建过程中遇到语法错误时失败。如果您的构建没有失败,可能是由于其他原因导致的。您可以检查构建日志以查看是否有其他错误或警告信息。

方案3

如果您的构建没有失败,即使存在语法错误,可能是因为您的构建脚本中使用了--debug标志。这个标志会导致构建继续执行,即使遇到错误也不会失败。您可以尝试删除--debug标志并重新运行构建,以查看是否会在语法错误时失败。

方案4

如果以上解决方案都没有解决您的问题,您可以尝试使用Bitbucket Pipelines的调试功能来进一步排查问题。您可以在构建配置文件中添加- step: script: - set -x,这将启用调试模式并显示更详细的日志信息,以帮助您找出问题所在。

方案5

如果您仍然无法解决问题,建议您查看Bitbucket Pipelines的文档和社区支持,以获取更多关于持续集成和构建过程的信息和帮助。
以上是一些可能的解决方案,希望能帮助您解决问题。如果您有任何其他问题,请随时提问。

正文完