language: ruby
dist: xenial
rvm: 2.5.3

cache:
  bundler: true

env:
  global:
  - COVERAGE=1
  matrix:
  - INTEGRATION_SPECS=0
  - INTEGRATION_SPECS=1

stages:
- test
- ':ship: it to Quay.io'

jobs:
  allow_failures:
  - script: ./script/docker-build-and-push
  include:
  - stage: test
    env:
    script: ./script/validate-example-payloads-with-docker
  - stage: ':ship: it to Quay.io'
    env:
    script: ./script/docker-build-and-push
    if: NOT type IN (pull_request) AND branch = master

before_script:
- eval "$(script/handle-docker-config)"
- bundle exec rake clean assets:precompile

script:
- bundle exec rspec spec
- bundle exec rake shfmt
- bundle exec rake assert_clean
- bundle exec rake shellcheck
- bundle exec rake assert_examples

after_success: bundle exec codeclimate-test-reporter

after_failure: bundle exec rake dump_examples_logs

before_deploy:
- sudo pip install -U -I Pygments
- ./script/build-s3-index-html

deploy:
  provider: s3
  access_key_id:
    secure: fXt5NG5UGDvpnRFvUUk9J//iSo+Vh28oEUJvjZqiUZ9GRHp5TrIS5vL4bPlD/1RrJRp7BVVj1+4ThXZRzrMhF5xazK8k4ANaUhMdjmRa6arXtqBcXIyUvu//5e80nlXekqMKaW7f5wrLNiKZB+ck7ayGlI1NYLNQ5nCWC6Xxe6s=
  secret_access_key:
    secure: Jn9clQh78C2c1zoueTkn0r5kSCHrbb7bMojb8/Ne+6zg0pD/3w25mrhEC4y9b3M/lHoKArOPj4dn03ZErJleM8aOMNMIa6ck8GKP+7EoFlZ/1/C5733HazlldTWDd2+wTOYfSIGOM+mHDP5tmK0S7pr1zEm+/++UExuGZXiCSSI=
  bucket: travis-build-examples
  local_dir: examples
  skip_cleanup: true
  region: us-east-1
  on:
    branch: master
    condition: $INTEGRATION_SPECS == 1
    repo: travis-ci/travis-build
Cloud-CV/EvalAI:.travis.yml@1ed4c95
language: python
sudo: false
services:
  - docker
  - xvfb
python:
  - '3.7.5'
cache:
  directories:
    - '$HOME/.cache/pip'
before_install:
  - sudo rm -f /etc/boto.cfg
  - export CHROME_BIN=chromium-browser
  - export DISPLAY=:99.0
install:
  - pip install awscli==1.18.66 flake8==3.8.2
script:
  - flake8 ./ || travis_terminate 1;
  - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || travis_terminate 1;
  - docker-compose build || travis_terminate 1;
  - docker-compose run nodejs bash -c "gulp dev && karma start --single-run && gulp staging" || travis_terminate 1;
  - docker-compose run -e DJANGO_SETTINGS_MODULE=settings.test django pytest --cov . --cov-config .coveragerc || travis_terminate 1;
before_cache:
  - rm -f $HOME/.cache/pip/log/debug.log
after_success:
  - bash <(curl -s https://codecov.io/bash)
  - coveralls --rcfile=.coveragerc
  - eval "$(ssh-agent -s)"
  - openssl aes-256-cbc -K $encrypted_77d2d82026f6_key -iv $encrypted_77d2d82026f6_iv
    -in scripts/deployment/evalai.pem.enc -out scripts/deployment/evalai.pem -d || true
  - './scripts/deployment/push.sh'
  - './scripts/deployment/deploy.sh auto_deploy'
notifications:
  email:
    on_success: change
    on_failure: always
    slack: cloudcv:gy3CGQGNXLwXOqVyzXGZfdea
Build Config
{
  "os": [
    "linux"
  ],
  "env": {
    "global": [
      {
        "COVERAGE": "1"
      }
    ],
    "matrix": [
      {
        "INTEGRATION_SPECS": "0"
      },
      {
        "INTEGRATION_SPECS": "1"
      }
    ]
  },
  "rvm": [
    "2.5.3"
  ],
  "dist": "xenial",
  "cache": {
    "bundler": true
  },
  "deploy": [
    {
      "on": {
        "repo": "travis-ci/travis-build",
        "branch": [
          "master"
        ],
        "condition": [
          "$INTEGRATION_SPECS == 1"
        ]
      },
      "bucket": "travis-build-examples",
      "region": "us-east-1",
      "provider": "s3",
      "local_dir": "examples",
      "skip_cleanup": true,
      "access_key_id": {
        "secure": "fXt5NG5UGDvpnRFvUUk9J//iSo+Vh28oEUJvjZqiUZ9GRHp5TrIS5vL4bPlD/1RrJRp7BVVj1+4ThXZRzrMhF5xazK8k4ANaUhMdjmRa6arXtqBcXIyUvu//5e80nlXekqMKaW7f5wrLNiKZB+ck7ayGlI1NYLNQ5nCWC6Xxe6s="
      },
      "secret_access_key": {
        "secure": "Jn9clQh78C2c1zoueTkn0r5kSCHrbb7bMojb8/Ne+6zg0pD/3w25mrhEC4y9b3M/lHoKArOPj4dn03ZErJleM8aOMNMIa6ck8GKP+7EoFlZ/1/C5733HazlldTWDd2+wTOYfSIGOM+mHDP5tmK0S7pr1zEm+/++UExuGZXiCSSI="
      }
    }
  ],
  "matrix": {
    "include": [
      {
        "env": [
          {}
        ],
        "stage": "test",
        "script": [
          "./script/validate-example-payloads-with-docker"
        ]
      },
      {
        "if": "NOT type IN (pull_request) AND branch = master",
        "env": [
          {}
        ],
        "stage": ":ship: it to Quay.io",
        "script": [
          "./script/docker-build-and-push"
        ]
      }
    ],
    "allow_failures": [
      {
        "script": [
          "./script/docker-build-and-push"
        ]
      }
    ]
  },
  "script": [
    "bundle exec rspec spec",
    "bundle exec rake shfmt",
    "bundle exec rake assert_clean",
    "bundle exec rake shellcheck",
    "bundle exec rake assert_examples"
  ],
  "stages": [
    {
      "name": "test"
    },
    {
      "name": ":ship: it to Quay.io"
    }
  ],
  "language": "ruby",
  "after_failure": [
    "bundle exec rake dump_examples_logs"
  ],
  "after_success": [
    "bundle exec codeclimate-test-reporter"
  ],
  "before_deploy": [
    "sudo pip install -U -I Pygments",
    "./script/build-s3-index-html"
  ],
  "before_script": [
    "eval \"$(script/handle-docker-config)\"",
    "bundle exec rake clean assets:precompile"
  ]
}