# 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:
  - "3.9"

node_js:
  - 12

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

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_public_ip
             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
