# Image with everything needed to run Cyber Sandbox Creator. image: registry.gitlab.ics.muni.cz:443/muni-kypo-csc/cyber-sandbox-creator:debian # Make sure that VirtualBox kernel modules are loaded and install Python dependencies. before_script: - lsmod | grep "vbox" || /usr/lib/virtualbox/vboxdrv.sh setup - pip3 install -r requirements.txt - chmod +x test_topologies.sh # Separating integration tests into several stages to ensure only one job creating virtual environment will run at one time. # Running several jobs at once will make them fail while testing virtual network. # Integration tests need to be separated into several jobs to fit under timeout treshold. stages: - 0-routers-1-network-1-host - 1-router-1-network-1-host - 1-router-2-networks-2-hosts - 1-router-2-networks-2-hosts-ubuntu - 1-router-2-networks-2-hosts-kali - 2-routers-2-networks-2-hosts - 2-routers-4-networks-4-hosts - 3-routers-5-networks-5-hosts-br - 3-routers-5-networks-5-hosts-br-ansloc original: stage: 0-routers-1-network-1-host script: - ./test_topologies.sh ./testing/ci/config_1_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests debian-stretch: stage: 0-routers-1-network-1-host script: - ./test_topologies.sh ./testing/ci/config_1_2.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests debian9: stage: 0-routers-1-network-1-host script: - ./test_topologies.sh ./testing/ci/config_1_3.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests ubuntu: stage: 0-routers-1-network-1-host script: - ./test_topologies.sh ./testing/ci/config_1_4.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests kali: stage: 0-routers-1-network-1-host # overwritting global before_script to create a virtual display before running test requiring a display before_script: - lsmod | grep "vbox" || /usr/lib/virtualbox/vboxdrv.sh setup - pip3 install -r requirements.txt - chmod +x test_topologies.sh - Xvfb :1 -screen 0 800x600x16 & script: - DISPLAY=:1 ./test_topologies.sh ./testing/ci/config_1_5.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 1-router-1-network-1-host: stage: 1-router-1-network-1-host script: - ./test_topologies.sh ./testing/ci/config_2_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 1-router-2-networks-2-hosts: stage: 1-router-2-networks-2-hosts script: - ./test_topologies.sh ./testing/ci/config_3_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 1-router-2-networks-2-hosts-ubuntu: stage: 1-router-2-networks-2-hosts-ubuntu script: - ./test_topologies.sh ./testing/ci/config_4_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 1-router-2-networks-2-hosts-kali: stage: 1-router-2-networks-2-hosts-kali # overwritting global before_script to create a virtual display before running test requiring a display before_script: - lsmod | grep "vbox" || /usr/lib/virtualbox/vboxdrv.sh setup - pip3 install -r requirements.txt - chmod +x test_topologies.sh - Xvfb :1 -screen 0 800x600x16 & script: - DISPLAY=:1 ./test_topologies.sh ./testing/ci/config_5_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 2-routers-2-networks-2-hosts: stage: 2-routers-2-networks-2-hosts script: - ./test_topologies.sh ./testing/ci/config_6_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 2-routers-4-networks-4-hosts: stage: 2-routers-4-networks-4-hosts script: - ./test_topologies.sh ./testing/ci/config_7_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 3-routers-5-networks-5-hosts-br: stage: 3-routers-5-networks-5-hosts-br script: - ./test_topologies.sh ./testing/ci/config_8_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests 3-routers-5-networks-5-hosts-br-ansloc: stage: 3-routers-5-networks-5-hosts-br-ansloc script: - ./test_topologies.sh ./testing/ci/config_9_1.yml # run even when other stages fail when: always # only run for commits to master branch and merge requests only: - merge_requests