Skip to content
New issue

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

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

Already on GitHub? Sign in 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.

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

No branches or pull requests

2 participants