Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Deploy Automático com Travis CI #73

Open
GabrielDS opened this issue Feb 3, 2018 · 1 comment
Open

Deploy Automático com Travis CI #73

GabrielDS opened this issue Feb 3, 2018 · 1 comment

Comments

@GabrielDS
Copy link

GabrielDS commented Feb 3, 2018

Uma opção que o Travis CI possui é a automatização no deploy da aplicação.
Percebi, que o Bot está hospedado no Heroku, o travis tem suporte com o serviço de hospedagem o que facilita na configuração do deploy.

Configuração Básica de deploy para Heroku:

deploy:
  provider: heroku
  api_key: ...
  app: my-app-name-123

Além disso, o Travis CI está com uma nova feature que são os Builds Stages. A função das Builds Stages é fazer uma "integração" entre diferentes jobs. Por exemplo, estou a testar minha aplicação em 4 diferentes versões de Python e eu quero que o Travis faça o deploy se, e somente se, os testes derem "Okaay" e os jobs forem relacionados ao merge da Branch Master. Daí, o CI só irá executar o deploy no momento que os testes estiverem concluídos e os jobs forem relacionado a branch master:

Configuração Básica de Build Stages

jobs:
  include:
    - stage: Deploy Heroku
      if: branch == master
      python: 3.6 
      script: echo "Deploy App to Heroku"
      deploy: &heroku
        provider: heroku
        # ...

Exemplo com Docker:

Um exemplo do arquivo de configuração de um projeto real-world para dockerhub:

language: python

sudo: true

install:
  - pip install -r requirements.txt

python:
  - "3.4"
  - "3.5"
  - "3.6"

script:
  - pytest

jobs:
  include:
    - stage: Deploy Docker Hub
      if: branch = docker-branch
      python: 3.6
      script: echo "Deploy to DockerHub"
      script:
      - docker build -t surfse-api .
      - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
      - docker push "$DOCKER_REPO"


notifications:
  email: false
@erickmendonca
Copy link
Member

Já usamos a opção de deploy automático no Heroku quando a branch master é atualizada e os testes são executados com sucesso. Mas eu achei interessante a ideia de implementar Build Stages e criarmos uma imagem Docker.

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants