Travis CI подтолкнуть сборку к новому хранилищу

Я пытаюсь отправить встроенную версию проекта CI travis в другое хранилище во время after_success

Следующий скрипт выполняется travis после завершения сборки:

git config user.name "Travis CI"
git config user.email "fake@fake.com"
git config --global push.default simple
git add . -f #force adding to include files in .gitignore
git commit -m "built with love by travis <3"
git remote add production https://${GH_TOKEN}:x-oauth-basic@github.com/my_username/repo.git
git push production master --force #ensure repo is in correct state

GH_TOKEN - это зашифрованный токен github, хранящийся в.travis.yml. Очевидно, я отредактировал некоторую личную информацию.

Когда этот скрипт выполняется travis, я получаю следующую ошибку:

remote: fatal: did not receive expected object [redacted]
error: unpack failed: index-pack abnormal exit
To https://[redacted token]:x-oauth-basic@github.com/my_username/repo.git
 ! [remote rejected] HEAD -> master (failed)
error: failed to push some refs to 'https://[redacted token]:x-oauth-basic@github.com/my_username/repo.git'

Это проблема с моим скриптом, travis или github?

1 ответ

Я не совсем уверен, в чем проблема, но я изменил свой скрипт, чтобы инициализировать новый пустой git-репозиторий в travis, и все работало гладко:

rm -rf .git/
git init
git config user.name "Travis CI"
git config user.email "travis@domain.com"
git config --global push.default simple
git add .
git commit -m "built with love by travis <3"
git remote add production https://${GH_TOKEN}@github.com/user/repo.git
git push production master --force
Другие вопросы по тегам