# This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions # For more information about secrets see: https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets name: crmsh CI on: - pull_request - workflow_call env: DOCKER_SCRIPT: ./test/run-functional-tests GET_INDEX_OF: ./test/run-functional-tests _get_index_of jobs: general_check: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: check data-manifest run: | ./update-data-manifest.sh output=`git --no-pager diff data-manifest` [[ -z $output ]] || { echo "$output" echo "A new version of data-manifest is needed." echo "Please run ./update-data-manifest.sh && git add ./data-manifest in your local environment and push the code again." exit 1 } unit_test: runs-on: ubuntu-20.04 strategy: matrix: python-version: ['3.6', '3.8', '3.10'] fail-fast: false timeout-minutes: 5 steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install tox - name: Test with pytest in tox run: | tox -v -e${{ matrix.python-version }} functional_test_crm_report_bugs: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for crm_report bugs run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF crm_report_bugs` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_crm_report_normal: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for crm_report normal run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF crm_report_normal` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_bootstrap_bugs: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap bugs run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_bugs` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_bootstrap_bugs_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap bugs, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_bugs` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_bootstrap_common: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap common run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_init_join_remove` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_bootstrap_common_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap common, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_init_join_remove` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_bootstrap_options: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap options run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_options` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_bootstrap_options_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for bootstrap options, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF bootstrap_options` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_qdevice_setup_remove: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice setup and remove run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_setup_remove` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_qdevice_setup_remove_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice setup and remove, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_setup_remove` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_qdevice_options: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice options run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_options` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_qdevice_validate: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice validate run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_validate` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_qdevice_validate_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice validate, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_validate` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_qdevice_user_case: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for qdevice user case run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF qdevice_usercase` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_resource_failcount: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for resource failcount run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF resource_failcount` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_resource_set: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for resource set run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF resource_set` $DOCKER_SCRIPT $index - uses: codecov/codecov-action@v3 functional_test_resource_set_non_root: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for resource set, under non root user run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF resource_set` $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_configure_sublevel: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for configure sublevel bugs run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF configure_bugs` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_constraints_bugs: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for constraints bugs run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF constraints_bugs` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_geo_cluster: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for geo cluster run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF geo_setup` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_healthcheck: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for healthcheck run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service index=`$GET_INDEX_OF healthcheck` $DOCKER_SCRIPT $index && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT $index -u - uses: codecov/codecov-action@v3 functional_test_cluster_api: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for cluster api run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service $DOCKER_SCRIPT `$GET_INDEX_OF cluster_api` - uses: codecov/codecov-action@v3 functional_test_user_access: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for user access run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service $DOCKER_SCRIPT `$GET_INDEX_OF user_access` - uses: codecov/codecov-action@v3 functional_test_ssh_agent: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: functional test for user access run: | echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker.service $DOCKER_SCRIPT `$GET_INDEX_OF ssh_agent` && $DOCKER_SCRIPT -d && $DOCKER_SCRIPT -u `$GET_INDEX_OF ssh_agent` - uses: codecov/codecov-action@v3 original_regression_test: runs-on: ubuntu-20.04 timeout-minutes: 40 steps: - uses: actions/checkout@v3 - name: original regression test run: | $DOCKER_SCRIPT `$GET_INDEX_OF "regression test"`