Cometer a través de travis ci fallando


Estoy tratando de usar la extensión grunt-gh-pages para confirmar 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 repo obtengo 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.

Así que básicamente solo quiero que Travis-ci confirme los archivos en la rama gh-pages de mi repositorio. ¿Hay alguna manera de hacer eso?

Actualizar El final .travis.yml que resolvió 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"}
Author: basarat, 2013-08-03

2 answers

¡Ciertamente puedes! El primer problema, como descubriste, se debe al uso de la URL git:// para enviar, pero el protocolo git solo se puede usar para clonar repositorios.

En cuanto al error "acceso anónimo denegado", eso es porque necesitas dejar que Travis inicie sesión en tu cuenta de GitHub para poder enviarlo 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 usar tokens OAuth. Si no tienes idea de lo que significa, no te preocupes, te lo explicaré. Un token 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 OAuth, vaya a la página de configuración de aplicaciones de GitHub y haga clic en "Create new token" en "Personal API Access Token". Probablemente desee agregar una nota para lo que es esto, de esa manera es más fácil de realizar un seguimiento y más fácil de revocar si lo necesita en el futuro. Tenga en cuenta que este token es esencialmente una contraseña que da acceso a las mismas cosas que hace una contraseña.

Luego, debe agregar el token a su .travis.archivo yml. Primero, cifraremos el token para que solo Travis pueda verlo. Para ello, necesita el travis Rubygem instalado: gem install travis.

travis encrypt GH_TOKEN="the-token-from-github" --add

Su .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, necesita agregar algunas cosas más a su .travis.yml también.

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 cualquier archivo que quieras, pero asegúrate de que no sea uno que vayas a enviar a GitHub. Luego, agregamos el token al archivo .git/credentials. Git ahora sabe que para los push a https://github.com, puede usar tu token para autenticarse.

Usted debe estar todo listo!

PD: Si solo quieres enviar a GitHub si la compilación pasa, puedes cambiar after_script a after_success.

 36
Author: henrikhodne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-03 04:33:55

La respuesta de henrikhodne es genial, pero la solución no funciona con grunt-gh-pages porque crea otro repositorio Git en algún lugar del subdirectorio .grunt/grunt-gh-pages/. Por lo tanto git config hecho en la sección after_script o after_success no es utilizado por grunt-gh-pages.

Es posible agregar GH_TOKEN a la URL del repositorio utilizada por grunt-gh-pages en Gruntfile.js así:

'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.

, Entonces su after_script o after_success la sección se puede modificar como:

after_success: grunt gh-pages:travis
 6
Author: dim2man,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:18