CodeBuild все еще проходит этап тестирования - PullRequest
1 голос
/ 15 октября 2019

У меня возникла проблема при развертывании приложения, так как мои тесты не запущены. Это простой скрипт, но все же сборка кода обходит мой тест. Я указал unittest и поместил путь к своему unittest-buildspec в консоли, в которой мое приложение выглядит следующим образом:

-Chalice

-. Chalice

- BuildSpec

---- build.sh

---- unittest-buildspec.ym

- Тесты

---- test_app.py

---- test-database.py

- app.py

version: 0.2

phases:
install:
runtime-versions:
  python: 3.7
commands:
  - pip install -r requirements_test.txt

build:
  commands:
    - echo Build started on `date` ---
    - pip install -r requirements_test.txt
    - ./build.sh
    - pytest --pep8 --flakes  

artifacts:
  files: 
    - '**/*'
  base-directory: 'my-build*'
  discard-paths: yes

Мой build.sh также находится в той же папке

#!/bin/bash
pip install --upgrade awscli
aws --version
cd ..
pip install virtualenv
virtualenv /tmp/venv
. /tmp/venv/bin/activate
export PYTHONPATH=.
py.test tests/ || exit 1

1 Ответ

1 голос
/ 16 октября 2019

Существует несколько проблем в спецификации сборки, которой вы поделились:

  1. Неверные отступы для 'install' и 'build' phase '. Они должны входить в «фазы».

  2. Установите '+ x' в build.sh перед его запуском.

Исправлен buildspec.yml:

version: 0.2 

phases: 
    install: 
        runtime-versions: 
          python: 3.7 
        commands: 
            - pip install -r requirements_test.txt 

    build: 
        commands: 
            - echo Build started on `date` --- 
            - pip install -r requirements_test.txt 
            - chmod +x ./build.sh 
            - ./build.sh 
            - pytest --pep8 --flakes   

artifacts: 
    files:  
        - '**/*' 
    base-directory: 'my-build*' 
    discard-paths: yes 


Также обратите внимание, что ваш build.sh использует интерпретатор "/ bin / bash", в то время как скрипт будет работать, технически оболочка не работает "bash ", так что любая конкретная функциональность bash не будет работать. Оболочка CodeBuild таинственна, она запускает обычные скрипты, она просто не bash.

...