From 78406a330b406c6b3ec6ed5eb795b798096a0834 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 10:50:04 +0800 Subject: [PATCH 01/11] Remove old ce-oem workflow This workflow comes from the original Git repository and is no longer needed. --- contrib/.github/workflows/tox.yaml | 35 ------------------------------ 1 file changed, 35 deletions(-) delete mode 100644 contrib/.github/workflows/tox.yaml diff --git a/contrib/.github/workflows/tox.yaml b/contrib/.github/workflows/tox.yaml deleted file mode 100644 index d453966604..0000000000 --- a/contrib/.github/workflows/tox.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: Test checkbox-provider-ce-oem with tox - -on: - push: - pull_request: - branches: [ main ] - paths: - - checkbox-provider-ce-oem/** - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-20.04 - strategy: - matrix: - python: ["3.5", "3.6", "3.8", "3.10"] - steps: - - uses: actions/checkout@v3 - - name: install stable checkbox and checkbox-provider-ce-oem - run: | - cd ~ - git clone --depth=1 https://github.com/canonical/checkbox.git - cd - - cp -r checkbox-provider-ce-oem ~/checkbox/providers - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python }} - - name: Install tox and otehr dependencies - run: | - python3 -m pip install --upgrade pip - pip3 install tox - - name: Run tox - working-directory: /home/runner/checkbox/providers/checkbox-provider-ce-oem/ - run: tox -e py${{ matrix.python }} From 582acc5a9cafc032c66ff72fbdbf2536dd49ea59 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 10:51:37 +0800 Subject: [PATCH 02/11] Add workflow for the ce-oem provider This workflow is adapted from existing workflows used for the generic providers. --- .../tox-contrib-provider-ce-oem.yaml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/tox-contrib-provider-ce-oem.yaml diff --git a/.github/workflows/tox-contrib-provider-ce-oem.yaml b/.github/workflows/tox-contrib-provider-ce-oem.yaml new file mode 100644 index 0000000000..529ced2708 --- /dev/null +++ b/.github/workflows/tox-contrib-provider-ce-oem.yaml @@ -0,0 +1,46 @@ +name: Test provider-ce-oem (from contrib area) with tox + +on: + push: + branches: [ main ] + paths: + - contrib/checkbox-provider-ce-oem/** + pull_request: + branches: [ main ] + paths: + - contrib/checkbox-provider-ce-oem/** + workflow_dispatch: + +jobs: + build: + defaults: + run: + working-directory: contrib/checkbox-provider-ce-oem + runs-on: ubuntu-20.04 + strategy: + matrix: + python: ["3.5", "3.6", "3.8", "3.10"] + include: + - python: "3.5" + tox_env_name: "py35" + - python: "3.6" + tox_env_name: "py36" + - python: "3.8" + tox_env_name: "py38" + - python: "3.10" + tox_env_name: "py310" + steps: + - uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python }} + - name: Install tox + run: pip install tox + - name: Run tox + run: tox -e${{ matrix.tox_env_name }} + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + flags: contrib-provider-ce-oem From e7c2f9703155dce188d53d8632ec2ec6ea1ae254 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 10:55:29 +0800 Subject: [PATCH 03/11] Update contrib ce-oem tox config - Point to the correct version of Python using {envpython} - Remove the "develop installation" step for the ce-oem provider - Convert the test step into a test coverage one to generate an XML report to be used later by Codecov --- contrib/checkbox-provider-ce-oem/tox.ini | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/contrib/checkbox-provider-ce-oem/tox.ini b/contrib/checkbox-provider-ce-oem/tox.ini index 6028600aad..2c6b74caef 100644 --- a/contrib/checkbox-provider-ce-oem/tox.ini +++ b/contrib/checkbox-provider-ce-oem/tox.ini @@ -6,22 +6,23 @@ skipsdist=True [testenv] allowlist_externals = rm commands = - pip -q install ../../checkbox-ng + {envpython} -m pip -q install ../../checkbox-ng # Required because this provider depends on checkbox-support parsers & scripts - pip -q install ../../checkbox-support + {envpython} -m pip -q install ../../checkbox-support rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-resource.provider rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-base.provider rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-certification-client.provider rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-certification-server.provider rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-ce-oem.provider # Install all providers in develop mode to make sure everything works fine - {envbindir}/python3 ../resource/manage.py develop - {envbindir}/python3 ../base/manage.py develop - {envbindir}/python3 ../certification-client/manage.py develop - {envbindir}/python3 ../certification-server/manage.py develop - {envbindir}/python3 manage.py develop - {envbindir}/python3 manage.py validate - {envbindir}/python3 manage.py test + {envpython} ../resource/manage.py develop + {envpython} ../base/manage.py develop + {envpython} ../certification-client/manage.py develop + {envpython} ../certification-server/manage.py develop + {envpython} manage.py validate + {envpython} -m coverage run manage.py test + {envpython} -m coverage report + {envpython} -m coverage xml [testenv:py3.5] deps = From 6dd1093ebbca35d22915fa9606eee957b0bb9a0a Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 14:25:30 +0800 Subject: [PATCH 04/11] Point to the right directory for generic providers --- contrib/checkbox-provider-ce-oem/tox.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/checkbox-provider-ce-oem/tox.ini b/contrib/checkbox-provider-ce-oem/tox.ini index 2c6b74caef..05606a72cb 100644 --- a/contrib/checkbox-provider-ce-oem/tox.ini +++ b/contrib/checkbox-provider-ce-oem/tox.ini @@ -15,10 +15,10 @@ commands = rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-certification-server.provider rm -f /var/tmp/checkbox-providers-develop/checkbox-provider-ce-oem.provider # Install all providers in develop mode to make sure everything works fine - {envpython} ../resource/manage.py develop - {envpython} ../base/manage.py develop - {envpython} ../certification-client/manage.py develop - {envpython} ../certification-server/manage.py develop + {envpython} ../../providers/resource/manage.py develop + {envpython} ../../providers/base/manage.py develop + {envpython} ../../providers/certification-client/manage.py develop + {envpython} ../../providers/certification-server/manage.py develop {envpython} manage.py validate {envpython} -m coverage run manage.py test {envpython} -m coverage report From 045441596feaaa4ffbfed4a8f4714e657554a54a Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 14:52:35 +0800 Subject: [PATCH 05/11] Install ce-oem provider prior to run validation on it --- contrib/checkbox-provider-ce-oem/tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/checkbox-provider-ce-oem/tox.ini b/contrib/checkbox-provider-ce-oem/tox.ini index 05606a72cb..2199708c9a 100644 --- a/contrib/checkbox-provider-ce-oem/tox.ini +++ b/contrib/checkbox-provider-ce-oem/tox.ini @@ -19,6 +19,7 @@ commands = {envpython} ../../providers/base/manage.py develop {envpython} ../../providers/certification-client/manage.py develop {envpython} ../../providers/certification-server/manage.py develop + {envpython} manage.py develop {envpython} manage.py validate {envpython} -m coverage run manage.py test {envpython} -m coverage report From 463ffa890bccbb581912a84c02532cfd4ba08026 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 16:01:14 +0800 Subject: [PATCH 06/11] Add codecov config for ce-oem contrib provider Following Codecov documentation on flags[1], use the `contrib-provider-ce-oem` flag defined in the GitHub workflow[2] to mark Codecov status checks as non-blocking[3]. [1] https://docs.codecov.com/docs/flags [2] .github/workflows/tox-contrib-provider-ce-oem.yaml [3] https://docs.codecov.com/docs/common-recipe-list#set-non-blocking-status-checks --- codecov.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/codecov.yml b/codecov.yml index 2181d8cc80..9188087329 100644 --- a/codecov.yml +++ b/codecov.yml @@ -8,3 +8,12 @@ flag_management: # carryforward means if a test was not run again, use the previous # coverage result for the current flag (part) carryforward: true + individual_flags: + # non-blocking status check for ce-oem provider in contrib area + - name: contrib-provider-ce-oem + paths: + - contrib/checkbox-provider-ce-oem + carryforward: true + statuses: + - type: patch + informational: true From 3638a5b08d0dd9e9ee633cade8d183e78ab62b06 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 16 Jan 2024 16:56:45 +0800 Subject: [PATCH 07/11] Fix tox configuration for ce-oem provider --- contrib/checkbox-provider-ce-oem/tox.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/checkbox-provider-ce-oem/tox.ini b/contrib/checkbox-provider-ce-oem/tox.ini index 2199708c9a..91436b2d77 100644 --- a/contrib/checkbox-provider-ce-oem/tox.ini +++ b/contrib/checkbox-provider-ce-oem/tox.ini @@ -25,7 +25,7 @@ commands = {envpython} -m coverage report {envpython} -m coverage xml -[testenv:py3.5] +[testenv:py35] deps = flake8 pyserial @@ -44,7 +44,7 @@ setenv= # but it breaks some old python3.5 builds SETUPTOOLS_SCM_PRETEND_VERSION=0.0 -[testenv:py3.6] +[testenv:py36] deps = flake8 pyserial @@ -59,7 +59,7 @@ deps = distro == 1.0.1 PyYAML == 3.12 -[testenv:py3.8] +[testenv:py38] deps = flake8 pep8-naming @@ -75,7 +75,7 @@ deps = distro == 1.4.0 PyYAML == 5.3.1 -[testenv:py3.10] +[testenv:py310] deps = flake8 pep8-naming From 085ace2abc5ba075439acc7f984d61f17dda7989 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Wed, 17 Jan 2024 09:44:42 +0800 Subject: [PATCH 08/11] Add coverage requirement to ce-oem tox config --- contrib/checkbox-provider-ce-oem/tox.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/checkbox-provider-ce-oem/tox.ini b/contrib/checkbox-provider-ce-oem/tox.ini index 91436b2d77..2090b30207 100644 --- a/contrib/checkbox-provider-ce-oem/tox.ini +++ b/contrib/checkbox-provider-ce-oem/tox.ini @@ -28,6 +28,7 @@ commands = [testenv:py35] deps = flake8 + coverage == 5.5 pyserial natsort == 4.0.3 requests == 2.9.1 @@ -47,6 +48,7 @@ setenv= [testenv:py36] deps = flake8 + coverage == 5.5 pyserial natsort == 4.0.3 requests == 2.18.4 @@ -62,6 +64,7 @@ deps = [testenv:py38] deps = flake8 + coverage == 7.3.0 pep8-naming pyserial natsort == 7.0.1 @@ -78,6 +81,7 @@ deps = [testenv:py310] deps = flake8 + coverage == 7.3.0 pep8-naming pyserial natsort == 8.0.2 From d2739a049c53dac8bc074a0c66929364d46ca1e7 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Wed, 17 Jan 2024 10:00:08 +0800 Subject: [PATCH 09/11] Add coverage config to ce-oem provider --- contrib/checkbox-provider-ce-oem/.coveragerc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 contrib/checkbox-provider-ce-oem/.coveragerc diff --git a/contrib/checkbox-provider-ce-oem/.coveragerc b/contrib/checkbox-provider-ce-oem/.coveragerc new file mode 100644 index 0000000000..8dfe971275 --- /dev/null +++ b/contrib/checkbox-provider-ce-oem/.coveragerc @@ -0,0 +1,17 @@ +[run] +branch = True +source = bin,manage +omit = + tests/* + +[report] +exclude_lines = + @abc.abstractmethod + @abc.abstractproperty + @abstractmethod + @abstractproperty + @public + pragma: no cover + raise NotImplementedError + if __name__ == .__main__.: +show_missing = True From 487a33efd1a418df277c21f33150072b5a568bfc Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Wed, 17 Jan 2024 10:06:08 +0800 Subject: [PATCH 10/11] Update codecov config to make project status non-blocking for ce-oem provider --- codecov.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codecov.yml b/codecov.yml index 9188087329..01a2911c76 100644 --- a/codecov.yml +++ b/codecov.yml @@ -17,3 +17,5 @@ flag_management: statuses: - type: patch informational: true + - type: project + informational: true From a8b873da1796d08aa68e70dcdfb3d0a0b54ea889 Mon Sep 17 00:00:00 2001 From: Pierre Equoy Date: Tue, 23 Jan 2024 11:12:38 +0800 Subject: [PATCH 11/11] Change job id and add a name to it for easier reference --- .github/workflows/tox-contrib-provider-ce-oem.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tox-contrib-provider-ce-oem.yaml b/.github/workflows/tox-contrib-provider-ce-oem.yaml index 529ced2708..673bd4540f 100644 --- a/.github/workflows/tox-contrib-provider-ce-oem.yaml +++ b/.github/workflows/tox-contrib-provider-ce-oem.yaml @@ -12,7 +12,8 @@ on: workflow_dispatch: jobs: - build: + tox_test_contrib_ce_oem_provider: + name: Test ce-oem provider (from contrib area) with tox defaults: run: working-directory: contrib/checkbox-provider-ce-oem