Yeoman + Travis + Páginas Github

Aqui, descreverei como configurar tudo para um novo projeto de front-end usando Yeoman, Travis e Github Pages. Quando o Travis constrói com sucesso o projeto, os arquivos construídos serão colocados em um gh-pagesbranch (criando o branch, se necessário). Isso exigirá o uso do Yeoman e do gerador de CI do Travis para isso.

Começando em um diretório vazio:

mkdir my-new-everything && cd my-new-everything
npm install generator
-webapp
npm install generator
-travis-ci
yo webapp

Você pode instalar os geradores globalmente com a -gbandeira, se quiser. Em seguida, faça o que você fizer para colocá-lo no Github. Provavelmente, crie o repositório lá e, em seguida:

git init
git
add .
git commit
-am 'Initial commit.'
git remote
add origin https://github.com/mysterycommand/my-new-everything.git
git push
-u origin master

Visite a página de configurações / ganchos do seu repositório no Github. Algo como https://github.com/username/repository/settings/hooks neste / no meu caso neste . Role para baixo até o gancho do Travis e siga as instruções em Notas de instalação (ymmv, fiz isso há um tempo e não me lembro se foi difícil ou não). Quando você começar isso (o Gancho de Teste deve enviar um e-mail). Em seguida, de volta ao seu repositório / linha de comando local:

yo travis-ci:gh-pages

… Responda a alguns prompts, e se tudo correr bem:

grunt test

Verifique se os testes padrão foram aprovados e:

git add .
git commit
-am 'Travis CI setup.'

Et voila … assumindo que seus testes foram aprovados (o meu passou), você deve ter uma nova compilação em um branch do gh-pages (eu tenho) e visível para o mundo em algo como http://username.github.io/repository (A publicação inicial do seu branch gh-pages pode levar até 10 minutos). Neste / no meu caso: http://mysterycommand.github.io/my-new-tudo funciona perfeitamente.

Na próxima vez, descreverei minha solução atual para executar testes Mocha / Chai em um projeto baseado em RequireJS / AMD e como fazê-los funcionar no navegador e por meio da linha de comando.