Skip to content

Deploy Automático com Travis CI #73

@GabrielDS

Description

@GabrielDS

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions