Skip to content

Commit

Permalink
Fix ci-matrix pre-commit hook
Browse files Browse the repository at this point in the history
- Remove dependency of pydblite which fails to setup on recent pythons
- Discard shell script and put everything into pre-commit
  • Loading branch information
VannTen authored and kpoxo6op committed Dec 27, 2024
1 parent 56336de commit 4ce6aea
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 36 deletions.
3 changes: 2 additions & 1 deletion .gitlab-ci/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,5 @@ ci-matrix:
tags: [light]
image: python:3
script:
- tests/scripts/md-table/test.sh
- tests/scripts/md-table/main.py
- git diff --exit-code
8 changes: 6 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,13 @@ repos:

- id: ci-matrix
name: ci-matrix
entry: tests/scripts/md-table/test.sh
language: script
entry: tests/scripts/md-table/main.py
language: python
pass_filenames: false
additional_dependencies:
- jinja2
- pathlib
- pyaml

- id: jinja-syntax-check
name: jinja-syntax-check
Expand Down
36 changes: 18 additions & 18 deletions tests/scripts/md-table/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import glob
from pathlib import Path
import yaml
from pydblite import Base
import re
import jinja2
import sys
Expand All @@ -14,6 +13,7 @@

parser = argparse.ArgumentParser(description='Generate a Markdown table representing the CI test coverage')
parser.add_argument('--dir', default='tests/files/', help='folder with test yml files')
parser.add_argument('--output', default='docs/developers/ci.md', help='output file')


args = parser.parse_args()
Expand All @@ -24,25 +24,26 @@
# Data represents CI coverage data matrix
class Data:
def __init__(self):
self.db = Base(':memory:')
self.db.create('container_manager', 'network_plugin', 'operating_system')
self.container_managers = set()
self.network_plugins = set()
self.os = set()
self.combination = set()


def set(self, container_manager, network_plugin, operating_system):
self.db.insert(container_manager=container_manager, network_plugin=network_plugin, operating_system=operating_system)
self.db.commit()
def exists(self, container_manager, network_plugin, operating_system):
return len((self.db("container_manager") == container_manager) & (self.db("network_plugin") == network_plugin) & (self.db("operating_system") == operating_system)) > 0
def set(self, container_manager, network_plugin, os):
self.container_managers.add(container_manager)
self.network_plugins.add(network_plugin)
self.os.add(os)
self.combination.add(container_manager+network_plugin+os)

def exists(self, container_manager, network_plugin, os):
return (container_manager+network_plugin+os) in self.combination

def jinja(self):
template = env.get_template('table.md.j2')
container_engines = list(self.db.get_unique_ids('container_manager'))
network_plugins = list(self.db.get_unique_ids("network_plugin"))
operating_systems = list(self.db.get_unique_ids("operating_system"))

container_engines.sort()
network_plugins.sort()
operating_systems.sort()
container_engines = sorted(self.container_managers)
network_plugins = sorted(self.network_plugins)
operating_systems = sorted(self.os)

return template.render(
container_engines=container_engines,
Expand Down Expand Up @@ -91,6 +92,5 @@ def markdown(self):
network_plugin = y.get('kube_network_plugin', 'calico')
x = re.match(r"^[a-z-]+_([a-z0-9]+).*", f.name)
operating_system = x.group(1)
data.set(container_manager=container_manager, network_plugin=network_plugin, operating_system=operating_system)
#print(data.markdown())
print(data.jinja())
data.set(container_manager=container_manager, network_plugin=network_plugin, os=operating_system)
print(data.jinja(), file=open(args.output, 'w'))
4 changes: 0 additions & 4 deletions tests/scripts/md-table/requirements.txt

This file was deleted.

11 changes: 0 additions & 11 deletions tests/scripts/md-table/test.sh

This file was deleted.

0 comments on commit 4ce6aea

Please sign in to comment.