name: functional-tests concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true on: workflow_dispatch: pull_request: paths: - '.github/workflows/tests-functional.yml' - 'src/**' - 'tests/functional/**' - 'tests/resources/mockoon/**' - 'tests/resources/snmp/**' jobs: functional-tests-with-robot: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Install libs run: | sudo apt update sudo apt-get install -y libcurl4-openssl-dev sudo apt-get install -qqy snmpsim - name: Install Node.js uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 16 - name: Install Mockoon CLI run: npm install -g -D @mockoon/cli@3.1.0 - name: Install perl dependencies uses: shogo82148/actions-setup-perl@ea0507898383e7dbce382138da0c21af1849eb9e # v1.27.0 with: perl-version: '5.34' install-modules-with: cpm install-modules: | Alien::SNMP DateTime Net::Curl::Easy Paws Net::SNMP URI::Encode XML::LibXML DBI DBD::mysql POSIX Time::HiRes JSON::XS - name: Install Python uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 with: python-version: '3.11' - name: Install Robot Framework run: pip3.11 install robotframework shell: bash - name: Run Robot Framework API tests run: | sudo mkdir -p /var/lib/centreon/centplugins/ sudo chmod 777 /var/lib/centreon/centplugins/ robot tests/functional/api - name: Run Robot Framework SNMP tests run: | sudo useradd snmp sudo mkdir -p /usr/snmpsim/data sudo cp -r tests/resources/snmp/* /usr/snmpsim/data/ snmpsimd --logging-method=null --agent-udpv4-endpoint=127.0.0.1:2024 --process-user=snmp --process-group=snmp & robot tests/functional/snmp - name: Run Robot Framework Database tests run: robot tests/functional/database