Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate checkbox-dss-validation to checkbox/contrib (New) #1524

Merged
merged 16 commits into from
Oct 7, 2024

Conversation

motjuste
Copy link
Contributor

@motjuste motjuste commented Oct 2, 2024

Description

Copied the most relevant files from the original repo at commit bc07d01 and placed them in the newly created directory at contrib/checkbox-dss-validation. Solutions QA team has been added to .github/CODEOWNERS for the relevant directories and GitHub workflows.

Files under checkbox-provider-dss/bin in the original repo were not copied because it had a binary file, and none of the files were being used in the jobs anyway.

The only relevant GitHub workflow for regression testing of DSS was also copied. The relevant workflow has to be run in Testflinger, and its definition has been added to .github/workflows, while the relevant Testflinger job's definition has been copied to contrib/checkbox-dss-validation/testflinger/job-def.yaml directory. These files have changes from the original so that they point to the relevant directory in this repository instead of the original one.

Nevertheless, I have not made any changes to this repository's settings to enable running the workflow with Testflinger. I did not see the workflow being available to run in the GitHub Actions tab for this repo to check if the workflows will run or not.

Similarly, minimal updates (from the original) have been made to the README of the provider to now point to this repository instead of the original one in instructions.

An attempt was made to change the namespace of the provider from com.canonical.certification to com.canonical.contrib as suggested in contrib's README, but this lead to errors during validation of the provider.

Details of the validation errors on changing namespace to `contrib`
error: units/jobs.pxu:4: job 'intel_gpu/host_gpu_avail', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:20: job 'dss/initialize', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:43: job 'dss/namespace', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:59: job 'dss/status_mlflow', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:78: job 'dss/mlflow_deployed', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:95: job 'intel_gpu_plugin/install', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:124: job 'intel_gpu_plugin/daemonset_name', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:141: job 'intel_gpu_plugin/daemonset_number_available', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:158: job 'intel_gpu_plugin/daemonset_number_ready', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:175: job 'intel_gpu_plugin/labels', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:192: job 'intel_gpu_plugin/gpu_count', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:209: job 'intel_gpu_plugin/node_gpu_capacity', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:230: job 'intel_gpu_plugin/node_gpu_allocatable', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:251: job 'dss/status_intel_gpu', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:270: job 'dss/create_itex_2.15_notebook', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:287: job 'itex/itex_2.15_import', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:308: job 'itex/itex_2.15_gpu_avail', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:343: job 'dss/create_ipex_2.1.20_notebook', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:360: job 'ipex/ipex_2.1.20_import', field 'requires', unit 'com.canonical.contrib::executable' is not available
error: units/jobs.pxu:381: job 'ipex/ipex_2.1.20_gpu_avail', field 'requires', unit 'com.canonical.contrib::executable' is not available

Resolved issues

Documentation

No updates to Checkbox documentation.

Tests

Testing was done using the following Testflinger job definition, with a successful run 7014854f-82c9-45cc-8374-b9c91f8f2046:

job_queue: dell-precision-3470-c30322
provision_data:
  distro: jammy
test_data:
  test_cmds: |
    ssh -t ubuntu@$DEVICE_IP '
      export DEBIAN_FRONTEND=noninteractive
      sudo apt update
      sudo apt -y install git
      git clone -b CHECKBOX-1585-contrib-dss-validation https://github.com/canonical/checkbox.git
      cd checkbox/contrib/checkbox-dss-validation
      sudo snap install --classic snapcraft
      sudo snap install checkbox22
      lxd init --auto
      snapcraft
      sudo snap install --dangerous --classic ./checkbox-dss_*_amd64.snap
      checkbox-dss.install-deps
      checkbox-dss.validate-intel-gpu
    '

@motjuste motjuste force-pushed the CHECKBOX-1585-contrib-dss-validation branch from cecf1cc to a60eb52 Compare October 2, 2024 12:35
@motjuste
Copy link
Contributor Author

motjuste commented Oct 2, 2024

The Workflow validation workflow is failing because the action-validator is too old. It passes on my machine with action-validator version 0.6.0 which is the latest release since Feb-2024. See in particular notes for version 0.5.4.

Created issue #1525 for it.

@motjuste motjuste requested a review from pieqq October 2, 2024 13:01
@motjuste motjuste marked this pull request as ready for review October 2, 2024 13:01
pieqq
pieqq previously requested changes Oct 2, 2024
Copy link
Collaborator

@pieqq pieqq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a quick glance at this, I noticed a few things that should be changed in the provider's manage.py file.

@motjuste motjuste requested a review from pieqq October 2, 2024 15:23
@motjuste
Copy link
Contributor Author

motjuste commented Oct 2, 2024

New run in Testflinger after making requested changes: 4d890e0f-327c-4639-9aba-6334b413c777

@motjuste motjuste force-pushed the CHECKBOX-1585-contrib-dss-validation branch from f943f74 to 58860ba Compare October 4, 2024 14:44
pieqq and others added 2 commits October 4, 2024 18:02
As described in the readme, providers in the contrib area must have a
namespace that includes the word contrib.

Switching from `com.canonical.certification` to `com.canonical.contrib`.

This means that jobs and test plans from the base providers need to be
prefixed with the `com.canonical.certification` namespace.
@motjuste
Copy link
Contributor Author

motjuste commented Oct 4, 2024

Tests pass in Testflinger after changing namespace.

@Hook25 Hook25 dismissed pieqq’s stale review October 7, 2024 13:19

Dismissing and approving as requested on MM

@Hook25 Hook25 merged commit d0fda12 into main Oct 7, 2024
6 checks passed
@Hook25 Hook25 deleted the CHECKBOX-1585-contrib-dss-validation branch October 7, 2024 13:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants