2012-11-21 16 views
5

Próbuję zbudować projekt w serwisie Travis-Ci. to jest mój .travis.yml file:Nie można zbudować i wdrożyć projektu node.js za pomocą Travis-ci - Nie znaleziono pliku Rakefile

language: node_js 
node_js: 
    - 0.8 

after_script: 
    # Install the Heroku package (or the Heroku toolbelt) 
    - npm install heroku 
    # Add your Heroku git repo: 
    - git remote add heroku [email protected]:*****.git 
    # Add your Heroku API key: 
    - export HEROKU_API_KEY=KEYHERE 
    # Turn off warnings about SSH keys: 
    - echo "Host heroku.com" >> ~/.ssh/config 
    - echo " StrictHostKeyChecking no" >> ~/.ssh/config 
    - echo " CheckHostIP no" >> ~/.ssh/config 
    - echo " UserKnownHostsFile=/dev/null" >> ~/.ssh/config 
    # Clear your current Heroku SSH keys: 
    - heroku keys:clear 
    # Add a new SSH key to Heroku 
    - yes | heroku keys:add 
    # Push to Heroku! 
    - yes | git push heroku master 

otrzymuję następujący błąd kompilacji prawo na początku:

Nie Rakefile stwierdzono (szukasz: Rakefile, Rakefile, rakefile.rb, Rakefile.rb)

Prawdopodobnie dlatego, że coś jest nie tak z moim plikiem yml i próbuje użyć domyślnego konstruktora ruby.

Nie sądzę plik nie jest prawidłowym plikiem yml jako Sprawdziłem go yml walidator na http://yamllint.com/

coś nie tak z moim Travis konkretnego conf?

My package.json wygląda następująco:

{ 
    "name": "csnc", 
    "description": "csnc", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "express": "3.x", 
    "ejs": ">=0.0.0", 
    "express-partials": ">=0.0.0" 
    }, 
    "engines": { 
    "node": "0.8.x", 
    "npm": "1.1.x" 
    } 
} 

EDIT:

Jeśli szukasz sposobu, aby automatycznie rozmieścić node.js aplikację Heroku użyciu Travis-ci, poszukaj odpowiedzi Dołączony do pracy plik .travis.yml

+1

Czy używasz NPM? Jeśli tak, jak wygląda Twój pakiet package.json? – Odi

+0

@Odi dodał plik do pytania – Michael

+0

Jeśli się nie mylę, travis wywoła 'test npm' jeśli zdefiniujesz node_js jako język, ale nie określiłeś w swoim package.json' scripts ": {" test " : "./my_test_script.js"} '. A może jak się nazywasz? – Odi

Odpowiedz

6

Twój plik .travis.yml nie jest sprawdzany; możesz go zweryfikować pod numerem http://lint.travis-ci.org/.

Znaleziony problem z node_js klucza:

Wykryte nieobsługiwane wersje node.js. Na aktualną bieżąco listę obsługiwanych wersjach node.js, zobacz dokumentację Travis CI w http://bit.ly/travis-ci-environment

Spróbuj użyć 0.8.x.

+0

dzięki za narzędzie, bardzo przydatne. po zmianie na "0.8.x" nadal mam problem z kluczem node_js, a wyniki kompilacji są takie same. Zmiana wersji na '0.6' jednak rozwiązuje problem. Travis mówi w dokumentach, że 0.8 jest obsługiwany, więc nie rozumiem – Michael

+0

Ja też: https://github.com/mozilla/browserid/pull/2238 –

+0

Zaznaczam to jako odpowiedź, ponieważ to właśnie mnie najbardziej przybliżyło do znalezienia problem z moim plikiem – Michael

1

Z jakiegoś dziwnego powodu zauważyłem pojedyncze miejsce na początku pliku, którego wcześniej nie było (przysięgam :). To musiało spowodować błąd.

Dziwne było to, że gdy zmieniałem wersję węzła z 0.8 na 0.6, weryfikator nie zauważył błędu. Może to błąd w walidatorze.

W każdym razie, udało mi się również zautomatyzować wdrażanie aplikacji mojego węzła do Heroku. Nie znalazłem żadnej dokumentacji w sieci dotyczącej procesu jej wykonywania (w szczególności dla węzła), więc dołączam plik, który pracował dla mnie. Zauważ, że nie trzeba dodawać żadnych testów dla mojej aplikacji, to działa dobrze bez niej:

language: node_js 
node_js: 
    - 0.8 

after_script: 
    # Install the Heroku package (or the Heroku toolbelt) 
    - npm install heroku 
    # Add your Heroku git repo: 
    - git remote add heroku [email protected]:HEROKU_REPO_HERE.git 
    # Add your Heroku API key: 
    - export HEROKU_API_KEY=ENTER_KEY_HERE 
    # Turn off warnings about SSH keys: 
    - echo "Host heroku.com" >> ~/.ssh/config 
    - echo " StrictHostKeyChecking no" >> ~/.ssh/config 
    - echo " CheckHostIP no" >> ~/.ssh/config 
    - echo " UserKnownHostsFile=/dev/null" >> ~/.ssh/config 
    # Download and install Heroku toolbelt locally 
    - wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh 
    # Clear your current Heroku SSH keys: 
    - heroku keys:clear 
    # Add a new SSH key to Heroku 
    - yes | heroku keys:add 
    # Push to Heroku! 
    - yes | git push heroku master 

EDIT:

Niedawno przeniósł się z Travis.ci do Drone.io. Jeśli szukasz automatycznego wdrożenia do Heroku z Github, powinieneś to sprawdzić, działa świetnie i łatwiej było skonfigurować IMO.

https://drone.io/

+1

O rany, cieszę się, że to wymyśliłeś. Z powodu heroku-rzeczy, poprzednio [opisałem kroki w innej odpowiedzi] (http://stackoverflow.com/a/12849594/549755). Możesz ulepszyć swoje skrypty przez [zaszyfrowanie swojego 'HEROKU_API_KEY'] (http://stackoverflow.com/questions/9338428/using-secret-api-keys-on-travis-ci/12778315#12778315). – Odi

+0

@Odi dobry punkt, zmagam się z instalowaniem klejnotu ruby ​​i Travisa, aby to zadziałało. Czy istnieje prostszy sposób ? – Michael

+0

Nie o tym wiem. "Klejnot instalacji Travis" jest dość łatwe, powiedziałbym. Jeśli masz z tym problemy, powinieneś zamieścić inne pytanie na SO. – Odi

Powiązane problemy