Usar Travis para implementar en GitHub y crear tags

Estoy luchando durante algún time sobre cómo usar Travis-CI para comstackr e implementar una label en GitHub. Encontré información sobre eso en esta pregunta , pero no está muy claro y tampoco funciona para mí.

Creé una nueva versión de versión 0.0.0 en gitHub y estoy usando Scala con Play Framework y mi file .travis.yml es el siguiente:

 language: scala scala: - 2.10.4 jdk: - openjdk7 services: - postgresql env: - PLAY_VERSION=2.0.2 DATABASE_USER=postgres DATABASE_PWD='' DATABASE_URL=jdbc:postgresql:testdb BUILD_KEY=xxxxxxxxxxxxxxxxxxxxxxx before_script: - psql -c 'create database testdb;' -U postgres - wget http://download.playframework.org/releases/play-${PLAY_VERSION}.zip - unzip -q play-${PLAY_VERSION}.zip - sudo apt-get install jq script: - sbt test after_success: - play-${PLAY_VERSION}/play dist - 'ASSETID=$(curl -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/Company/spinsurstaging/releases/456729/assets" | jq ".[0].id")' - 'curl -XDELETE -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/Company/spinsurstaging/releases/assets/$ASSETID"' - 'curl -XPOST -s -H "Authorization: token ${BUILD_KEY}" -H "Content-Type: application/zip" --data-binary @./spinsurstaging-0.0-SNAPSHOT.zip "https://uploads.github.com/repos/Company/spinsurstaging/releases/456729/assets?name= spinsurstaging.zip"' notifications: email: false deploy: provider: heroku api_key: "${HEROKU_KEY}" app: spinsurstaging 

La pregunta principal es: ¿Cómo hacer que funcione? ¿Hay algo mal? Y también: no entendí cómo voy a publicar el file spinsurstaging-0.0-SNAPSHOT.zip como un lanzamiento a github. ¿De dónde viene este file? ¿Hay un estándar para esto? ¿Hay una mejor manera de hacer eso?

Gracias de antemano por ayudarme con este problema.

Acabo de descubrir cómo resolverlo. Cometí un error en la línea de código:

- 'curl -XPOST -s -H "Authorization: token ${BUILD_KEY}" -H "Content-Type: application/zip" --data-binary @./spinsurstaging-0.0-SNAPSHOT.zip "https://uploads.github.com/repos/Company/spinsurstaging/releases/456729/assets?name= spinsurstaging.zip"'

El código correcto es:

- 'curl -XPOST -s -H "Authorization: token ${BUILD_KEY}" -H "Content-Type: application/zip" --data-binary @./spinsurstaging-0.0-SNAPSHOT.zip "https://uploads.github.com/repos/Company/spinsurstaging/releases/456729/assets?name= spinsurstaging .zip"'

Tenga en count que cambio el nombre de file de la instantánea. Esta instantánea se crea al ejecutar el command play-${PLAY_VERSION}/play dist

Otra cosa importante es que tengo que cambiar la variable PLAY_VERSION a 2.2.4 porque la versión anterior no tenía un repository para la misma versión que estaba usando para sbt.

Entonces creo que podría responder todas mis preguntas. Espero que ayude a alguien más. Aquí están la solución completa:

 language: scala scala: - 2.10.4 jdk: - openjdk7 services: - postgresql env: - PLAY_VERSION=2.2.4 DATABASE_USER=postgres DATABASE_PWD='' DATABASE_URL=jdbc:postgresql:testdb BUILD_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx before_script: - psql -c 'create database testdb;' -U postgres - wget http://downloads.typesafe.com/play/${PLAY_VERSION}/play-${PLAY_VERSION}.zip - unzip -q play-${PLAY_VERSION}.zip - sudo apt-get install jq script: - sbt test after_success: - play-${PLAY_VERSION}/play dist - cd target/universal/ - 'ASSETID=$(curl -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/Company/spinsurstaging/releases/456729/assets" | jq ".[0].id")' - 'curl -XDELETE -s -H "Authorization: token ${BUILD_KEY}" "https://api.github.com/repos/Company/spinsurstaging/releases/assets/$ASSETID"' - 'curl -XPOST -s -H "Authorization: token ${BUILD_KEY}" -H "Content-Type: application/zip" --data-binary @./spinsurstaging-1.0-SNAPSHOT.zip "https://uploads.github.com/repos/Company/spinsurstaging/releases/456729/assets?name= spinsurstaging' notifications: email: false deploy: provider: heroku api_key: "${HEROKU_KEY}" app: spinsurstaging