summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/crmsh-cd.yml57
-rw-r--r--.github/workflows/crmsh-ci.yml368
2 files changed, 425 insertions, 0 deletions
diff --git a/.github/workflows/crmsh-cd.yml b/.github/workflows/crmsh-cd.yml
new file mode 100644
index 0000000..48b03a0
--- /dev/null
+++ b/.github/workflows/crmsh-cd.yml
@@ -0,0 +1,57 @@
+# 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 CD
+
+on: push
+
+env:
+ PACKAGE_NAME: crmsh
+ CONTAINER_IMAGE: nyang23/obs-continuous-delivery:latest
+ OBS_USER: ${{ secrets.OBS_USER }}
+ OBS_PASS: ${{ secrets.OBS_PASS }}
+ OBS_PROJECT: ${{ secrets.OBS_PROJECT_CRMSH45 }}
+ TARGET_PROJECT: ${{ secrets.TARGET_PROJECT }}
+
+jobs:
+ integration:
+ if: github.repository == 'ClusterLabs/crmsh' && github.ref_name == 'crmsh-4.6'
+ uses: ./.github/workflows/crmsh-ci.yml
+
+ delivery:
+ if: github.repository == 'ClusterLabs/crmsh' && github.ref_name == 'crmsh-4.6'
+ needs: integration
+ runs-on: ubuntu-20.04
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v3
+ - name: delivery process
+ run: |
+ docker pull "${CONTAINER_IMAGE}"
+ docker run -t -v "$(pwd)":/package:ro \
+ -e OBS_USER=$OBS_USER \
+ -e OBS_PASS=$OBS_PASS \
+ -e OBS_PROJECT=$OBS_PROJECT \
+ -e PACKAGE_NAME=$PACKAGE_NAME \
+ "${CONTAINER_IMAGE}" \
+ /bin/bash -c "cp -r /package ~/package && cd ~/package && /scripts/upload.sh"
+
+ submit:
+ if: github.repository == 'ClusterLabs/crmsh' && github.ref_name == 'crmsh-4.6'
+ needs: delivery
+ runs-on: ubuntu-20.04
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@v3
+ - name: submit process
+ run: |
+ docker pull "${CONTAINER_IMAGE}"
+ docker run -t \
+ -e OBS_USER=$OBS_USER \
+ -e OBS_PASS=$OBS_PASS \
+ -e OBS_PROJECT=$OBS_PROJECT \
+ -e PACKAGE_NAME=$PACKAGE_NAME \
+ -e TARGET_PROJECT=$TARGET_PROJECT \
+ "${CONTAINER_IMAGE}" \
+ /bin/bash -c "cd ~ && /scripts/submit.sh"
diff --git a/.github/workflows/crmsh-ci.yml b/.github/workflows/crmsh-ci.yml
new file mode 100644
index 0000000..f58ebd9
--- /dev/null
+++ b/.github/workflows/crmsh-ci.yml
@@ -0,0 +1,368 @@
+# 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"`