问题描述
正在尝试使用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的文档和社区支持,以获取更多关于持续集成和构建过程的信息和帮助。
以上是一些可能的解决方案,希望能帮助您解决问题。如果您有任何其他问题,请随时提问。