Когато настроите CI/CD тръбопровод за вашия проект, вероятно искате да изчислите покритието на кода и да го изпратите на услуга на трета страна като Codecov.
Ще ви покажа как да настроите това в „Google Cloud Build“.
проблем
„Инструментът codecov“ трябва да се стартира от git хранилище по подразбиране, в противен случай ще изведе грешка:
fatal: Not a git repository
Причината е, че codecov е проектиран да отчита покритие за конкретен клон и да ангажира вашия код.
Тъй като „приложението Google Cloud Build GitHub“ не създава повторно пълно git хранилище, имаме нужда от заобиколно решение.
Решение
Решението е ръчно да преминете клона и да се ангажирате с инструмента:
$ codecov --token=X --disable=detect --commit=FOO --branch=BAR
Cloud Build прави този вид информация достъпна за изграждането чрез „вградени замествания“.
cloudbuild.yaml
steps: - name: 'gcr.io/cloud-builders/npm' args: ['install'] - name: 'gcr.io/cloud-builders/npm' args: ['run', 'ci'] - name: 'gcr.io/cloud-builders/npm' args: [ 'run', 'codecov', '--', '--disable=detect', '--commit=$COMMIT_SHA', '--branch=$BRANCH_NAME' ]
package.json
{ "devDependencies": { "codecov": "3.1.0", "mocha": "5.2.0", "nyc": "13.1.0" }, "scripts": { "ci": "NODE_ENV=test node_modules/.bin/nyc node_modules/.bin/mocha --reporter spec 'server/test/**/*test.js' && node_modules/.bin/nyc report --reporter=text-lcov > coverage.lcov", "codecov": "node_modules/.bin/codecov --token=X" } }
Заключение
Можете да заобиколите откриването на инструмента codecov и ръчно да подадете ангажимента и разклонението на текущото изпълнение на CI.
Конфигурацията на Cloud Build е лесна за четене: тя инсталира зависимостите, изпълнява тестовете, след което качва резултатите в Codecov.
В следващата ми публикация ще ви покажа как можете да кеширате първата стъпка за по-добра производителност.