В моем readme.md
файле репозитория github у меня есть значок Travis-CI. Я использую следующую ссылку:
https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=staging
Очевидная проблема в том, что ветка жестко запрограммирована. Можно ли использовать какую-то переменную, чтобы ветка была той, которая просматривается в данный момент?
Ответы:
Не то, что я знаю из.
Поддержка GitHub подтверждает (через OP Джо Gatt «S комментарий )
Я бы предпочел сделать один значок Travis-CI на ветку, чтобы читатель мог выбрать или подумать о подходящем при просмотре
README.md
.Обновление 2016 (3 года спустя): хотя на стороне GitHub ничего не изменилось, fedorqui сообщает об обходном пути, упомянутом в статье Андри « Получите Travis Shield на Github для отражения статуса выбранной ветки » .
Просто отобразите все ветки и соответствующие значки TravisCI.
Если у вас всего две или три ветки, этого может быть достаточно.
источник
HTTP_REFERER
загрузке изображения из README на GitHub. :-(Я обошел эту проблему с помощью ловушки git pre-commit, которая перезаписывает строку Travis в README.md с текущей веткой. Ниже приведены пример использования и код предварительной фиксации (Python) (на заданный вопрос).
Применение
dandye$ git checkout -b feature123 origin/master Branch feature123 set up to track remote branch master from origin. Switched to a new branch 'feature123' dandye$ echo "* Feature123" >> README.md dandye$ git add README.md dandye$ git commit -m "Added Feature123" Starting pre-commit hook... Replacing: [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=master)][travis] with: [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=feature123)][travis] pre-commit hook complete. [feature123 54897ee] Added Feature123 1 file changed, 2 insertions(+), 1 deletion(-) dandye$ cat README.md |grep "Build Status" [![Build Status](https://travis-ci.org/joegattnet/joegattnet_v3.png?branch=feature123)][travis] dandye$
Код Python для кода предварительной фиксации
#!/usr/bin/python """ Referencing current branch in github readme.md[1] This pre-commit hook[2] updates the README.md file's Travis badge with the current branch. Gist at[4]. [1] http://stackoverflow.com/questions/18673694/referencing-current-branch-in-github-readme-md [2] http://www.git-scm.com/book/en/v2/Customizing-Git-Git-Hooks [3] https://docs.travis-ci.com/user/status-images/ [4] https://gist.github.com/dandye/dfe0870a6a1151c89ed9 """ import subprocess # Hard-Coded for your repo (ToDo: get from remote?) GITHUB_USER="joegattnet" REPO="joegattnet_v3" print "Starting pre-commit hook..." BRANCH=subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).strip() # String with hard-coded values # See Embedding Status Images[3] for alternate formats (private repos, svg, etc) # [![Build Status](https://travis-ci.org/ # joegattnet/joegattnet_v3.png? # branch=staging)][travis] # Output String with Variable substitution travis="[![Build Status](https://travis-ci.org/" \ "{GITHUB_USER}/{REPO}.png?" \ "branch={BRANCH})][travis]\n".format(BRANCH=BRANCH, GITHUB_USER=GITHUB_USER, REPO=REPO) sentinel_str="[![Build Status]" readmelines=open("README.md").readlines() with open("README.md", "w") as fh: for aline in readmelines: if sentinel_str in aline and travis != aline: print "Replacing:\n\t{aline}\nwith:\n\t{travis}".format( aline=aline, travis=travis) fh.write(travis) else: fh.write(aline) subprocess.check_output(["git", "add", "README.md" ]) print "pre-commit hook complete."
источник
REPOurl=subprocess.check_output(['git','config','--local', 'remote.origin.url']).decode()
GITHUB_USER=re.match('.*:([a-zA-Z0-9]*)\/', REPOurl).groups()[0]
REPO=re.match('.*\/([a-zA-Z0-9]*).git', REPOurl).groups()[0]
Лучшим решением для меня было создание сервера, на котором я отправляю запрос с именем пользователя и именем репо и получаю образ svg со статусом сборки для всех веток.
источник