github - que - Compromiso vía travis ci fallido.
travis cli (2)
¡Ciertamente puedes! El primer problema, como descubrió, se debe al uso de la URL git://
para enviar, pero el protocolo de git solo se puede usar para clonar repositorios.
En cuanto al error de "acceso anónimo denegado", es porque debe permitir que Travis inicie sesión en su cuenta de GitHub para ingresar al repositorio. Ahora, probablemente no quieras darle a Travis tu contraseña de GitHub, y ciertamente no tienes que hacerlo. En su lugar vamos a utilizar tokens OAuth. Si no tienes idea de lo que eso significa, no te preocupes, te lo explicaré. Un token de OAuth en la mayoría de los casos funciona como una contraseña, pero es más fácil revocar el acceso a cosas individuales.
Para generar un token de OAuth, vaya a la página de configuración de las aplicaciones de GitHub y haga clic en "Crear nuevo token" en "Token de acceso a API personal". Es probable que desee agregar una nota para lo que es, de esta manera es más fácil hacer un seguimiento y revocarlo si lo necesita en el futuro. Tenga en cuenta que este token es esencialmente una contraseña porque le da acceso a las mismas cosas que una contraseña.
Luego, debe agregar el token a su archivo .travis.yml. Primero, cifraremos el token para que solo Travis pueda verlo. Para esto, necesitas el travis
Rubygem instalado: gem install travis
.
travis encrypt GH_TOKEN="the-token-from-github" --add
Tu .travis.yml ahora debería verse algo como esto:
…
env:
global:
- secure: "lots-of-seemingly-random-characters"
…
Ahora, para que Travis realmente use este token, también necesita agregar algunas cosas más a su .travis.yml.
after_script:
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GH_TOKEN}:@github.com" > .git/credentials
- node ./node_modules/grunt-cli/bin/grunt release
Esto primero le dice a git que busque credenciales en el archivo .git/credentials
. Este puede ser el archivo que quieras, realmente, pero asegúrate de no empujar a GitHub. Luego, agregamos el token al archivo .git/credentials
. Git ahora sabe que para los envíos a https://github.com
, puede usar su token para autenticarse.
Deberías estar todo listo!
PD: si solo quieres enviar a GitHub si la compilación pasa, puedes cambiar after_script
por after_success
.
Estoy tratando de usar la extensión grunt-gh-pages para comprometerme con mi rama gh. Funciona bien localmente, pero cuando uso TRAVIS-CI falla. Da el siguiente mensaje de error:
Warning: fatal: remote error:
You can''t push to git://github.com/tusharmath/tusharm.com.git
Use https://github.com/tusharmath/tusharm.com.git
Use --force to continue.
Y cuando actualizo la opción de repo recibo el siguiente error:
Warning: remote: Anonymous access to tusharmath/tusharm.com.git denied.
fatal: Authentication failed for ''https://github.com/tusharmath/tusharm.com.git/''
Use --force to continue.
Aborted due to warnings.
Básicamente, solo quiero que Travis-ci confirme los archivos en la rama de gh-pages de mi repositorio. ¿Hay una manera de hacerlo?
Actualizar el .travis.yml
final que solucionó el problema.
language: node_js
node_js:
- ''0.11''
before_script:
- git config --global user.email "[email protected]"
- git config --global user.name "Travis-CI"
after_script:
- git config credential.helper "store --file=.git/credentials"
- echo "https://${GH_TOKEN}:@github.com" > .git/credentials
- node ./node_modules/grunt-cli/bin/grunt release
env:
global:
secure: {"lots-of-seemingly-random-characters"}
La respuesta de es excelente, pero la solución no funciona con grunt-gh-pages porque crea otro repositorio de Git en algún lugar de .grunt/grunt-gh-pages/
sub-directory. Por lo tanto, git config
hecho en la sección after_script
o after_success
no es usado por grunt-gh-pages.
Es posible agregar GH_TOKEN
a la URL del repositorio utilizada por grunt-gh-pages en Gruntfile.js
como esto:
''gh-pages'': {
// your common gh-pages config
travis: {
options: {
repo: ''https://'' + process.env.GH_TOKEN + ''@github.com/dim2man/csbrowser.git'',
silent: true
},
src: [''**'']
}
}
Tenga en cuenta la opción silent: true
, evita la publicación de su valor de token en los registros de Travis.
Luego, su sección after_script
o after_success
puede modificarse como:
after_success: grunt gh-pages:travis