Travis CI é uma serviço de integração contínua usada para build, testes e deploy de software que estão no GitHub, para projetos open sources pode ser utilizado sem quaisquer cobranças.
Ao acessar o Travis você terá a opção de ativar determinado repositório e quando o travis estiver ativado o GitHub passará a notificar quando houver novos commits.
Quando você tiver ativado o repositório no travis, você precisará ter um arquivo chamado .travis.yml
, esse arquivo contém instruções que informam ao travis o que fazer, como fazer e quando fazer. Nesse passo é onde entra a mágica para realizar o deploy para o GitHub Pages.
Adicionando o .travis.yml
ao seu projeto
Como exemplo utilizaremos um blog feito com [Hugo](‘https://gohugo.io')
Vamos detalhar o código
# .travis.yml
language: python
env:
global:
- PRODUCTION=true
before_install:
- sudo apt-get update -qq
- sudo apt-get -yq install apt-transport-https curl
install:
- curl -LO https://github.com/gohugoio/hugo/releases/download/v0.57.2/hugo_0.57.2_Linux-64bit.deb
- sudo dpkg -i hugo_0.57.2_Linux-64bit.deb
- hugo version
- rm -rf public 2> /dev/null
# Build the website
script:
- hugo
deploy:
provider: pages
github_token: $GITHUB_TOKEN
skip_cleanup: true
verbose: true
keep_history: false
local_dir: public
target_branch: gh-pages
on:
branch: master
deploy
: Este campo é onde vamos declarar as instruções de como o travis irá executar o deploy.provider
: Aqui dizemos ao travis para utilizar o provider do github.github_token
: Aqui passamos o token de acesso ao github para que o travis possa realizar o deploy. [Como gerar o Token](‘https://help.github.com/pt/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line').skip_cleanup
: Mantenha esse campo como true para que o travis não delete os arquivos que foi criado durante o build, que provavelmente será os arquivos que você está tentando fazer o upload.verbose
: Opcional, detalhar os passos que está sendo realizado, por padrão é false.keep_history
: Opcional, cria commits incrementais ao invés de fazer um push force, por padrão é falselocal_dir
: Diretório a ser enviado para o GitHub pages, por padrão é o diretório atual. Pode ser especificado path absoluto ou relativo.target_branch
: Branch onde será enviado o conteudo do local_dir, por padrão é gh-pageson/branch
: Branch que será a trigger para realizar o deploy.
Tudo pronto
Agora que está tudo em seu lugar, a cada novo commit o github passará a notificar o Travis para que começe o build mas somente na branch master ele irá realizar o deploy, e no Travis estará semelhante às capturas de tela abaixo. Você também pode acionar o build manualmente pelo dashboard do Travis.
Documentação:
[https://docs.travis-ci.com/user/deployment/pages/]('https://docs.travis-ci.com/user/deployment/pages/')