# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

sudo: required
dist: bionic
group: stable

language: java

jdk:
  - openjdk11

python:
  - "2.7"

cache:
  directories:
    - $HOME/.m2
  timeout: 500

notifications:
  email: false

env:
  global:
     - PATH=$HOME/.local/bin:$PATH
  matrix:
    # Keep the TESTS sorted by name and grouped by type
    - TESTS="smoke/test_certauthority_root"

    - TESTS="smoke/test_accounts
             smoke/test_affinity_groups
             smoke/test_affinity_groups_projects
             smoke/test_async_job
             smoke/test_backup_recovery_dummy
             smoke/test_create_list_domain_account_project
             smoke/test_create_network
             smoke/test_deploy_vgpu_enabled_vm
             smoke/test_deploy_vm_extra_config_data
             smoke/test_deploy_vm_iso
             smoke/test_deploy_vm_root_resize
             smoke/test_deploy_vm_with_userdata
             smoke/test_deploy_vms_with_varied_deploymentplanners
             smoke/test_diagnostics
             smoke/test_disk_offerings
             smoke/test_dynamicroles
             smoke/test_global_settings
             smoke/test_guest_vlan_range
             smoke/test_host_annotations
             smoke/test_host_maintenance
             smoke/test_hostha_simulator"

    - TESTS="smoke/test_internal_lb
             smoke/test_iso
             smoke/test_list_ids_parameter
             smoke/test_loadbalance
             smoke/test_login
             smoke/test_metrics_api
             smoke/test_multipleips_per_nic
             smoke/test_nested_virtualization
             smoke/test_network
             smoke/test_network_acl
             smoke/test_nic
             smoke/test_nic_adapter_type
             smoke/test_non_contigiousvlan
             smoke/test_outofbandmanagement
             smoke/test_outofbandmanagement_nestedplugin
             smoke/test_over_provisioning
             smoke/test_password_server
             smoke/test_portable_publicip
             smoke/test_portforwardingrules
             smoke/test_privategw_acl
             smoke/test_projects
             smoke/test_public_ip_range"

    - TESTS="smoke/test_pvlan
             smoke/test_regions
             smoke/test_reset_vm_on_reboot
             smoke/test_resource_accounting
             smoke/test_resource_detail
             smoke/test_router_dhcphosts
             smoke/test_router_dns
             smoke/test_routers
             smoke/test_routers_iptables_default_policy
             smoke/test_routers_network_ops
             smoke/test_scale_vm
             smoke/test_secondary_storage
             smoke/test_service_offerings
             smoke/test_snapshots
             smoke/test_ssvm
             smoke/test_staticroles
             smoke/test_templates
             smoke/test_update_security_group
             smoke/test_usage
             smoke/test_usage_events"

    - TESTS="smoke/test_vm_life_cycle
             smoke/test_vm_snapshots
             smoke/test_volumes
             smoke/test_vpc_redundant
             smoke/test_vpc_router_nics
             smoke/test_vpc_vpn
             smoke/test_primary_storage"

    - TESTS="component/find_hosts_for_migration
             component/test_acl_isolatednetwork
             component/test_acl_isolatednetwork_delete
             component/test_acl_listsnapshot"

    - TESTS="component/test_acl_listvm
             component/test_acl_listvolume"

    - TESTS="component/test_acl_sharednetwork
             component/test_acl_sharednetwork_deployVM-impersonation"

    - TESTS="component/test_affinity_groups_projects
             component/test_allocation_states
             component/test_assign_vm"

    - TESTS="component/test_concurrent_snapshots_limit
             component/test_cpu_domain_limits
             component/test_cpu_limits
             component/test_cpu_max_limits
             component/test_cpu_project_limits
             component/test_deploy_vm_userdata_multi_nic"

    - TESTS="component/test_egress_fw_rules
             component/test_invalid_gw_nm
             component/test_ip_reservation"

    - TESTS="component/test_lb_secondary_ip
             component/test_list_nics
             component/test_list_pod
             component/test_memory_limits"

    - TESTS="component/test_mm_domain_limits
             component/test_mm_max_limits
             component/test_mm_project_limits
             component/test_network_offering
             component/test_non_contiguous_vlan"

    - TESTS="component/test_persistent_networks
             component/test_project_configs
             component/test_project_limits
             component/test_project_resources"

    - TESTS="component/test_project_usage
             component/test_protocol_number_security_group
             component/test_resource_limits"

    - TESTS="component/test_regions_accounts
             component/test_routers
             component/test_snapshots
             component/test_stopped_vm
             component/test_tags
             component/test_templates
             component/test_updateResourceCount
             component/test_update_vm"

    - TESTS="component/test_volumes
             component/test_vpc
             component/test_vpc_distributed_routing_offering
             component/test_vpc_network"

    - TESTS="component/test_vpc_network_lbrules
             component/test_vpc_offerings
             component/test_vpc_routers
             component/test_vpn_users"

before_install: travis_wait 30 ./tools/travis/before_install.sh
install: ./tools/travis/install.sh
before_script: travis_wait 30 ./tools/travis/before_script.sh
script:
  - travis_wait 40 ./tools/travis/script.sh ${TESTS}
after_success: ./tools/travis/after_success.sh
after_failure: ./tools/travis/after_failure.sh
after_script: ./tools/travis/after_script.sh

# Packaging job definition, will be reused
.package_job: &package_job
  before_install: docker pull ${IMAGE}
  install: true
  before_script: true
  script: |
    docker run \
     --volume ${TRAVIS_BUILD_DIR}:/mnt/build/cloudstack \
     --volume $HOME/.m2:/root/.m2 \
     --rm \
     ${IMAGE} ${PARAMS}
  after_script: true
  after_success: true
  after_failure: true

#Disable due to intermittent failures
#jobs:
#  include:
#    - stage: package
#      services: docker
#      env: IMAGE=khos2ow/cloudstack-rpm-builder:centos7 PARAMS="--distribution centos7 --pack oss"
#      <<: *package_job
#
#    - stage: package
#      services: docker
#      env: IMAGE=khos2ow/cloudstack-deb-builder:ubuntu1804 PARAMS=""
#      <<: *package_job
