The Interface Exchange Framework. Tools for processing interface/API descriptions in different formats, including the IFEX core format. Some example files are at: https://github.com/COVESA/vehicle_service_catalog.
Mozilla Public License 2.0
14
stars
17
forks
source link
Update containers and include CI test for container builds #62
Complete and bugfix the configuration of Dockerfiles and Makefile for the containers.
Introduce a Github-Actions CI workflow to ensure that building containers keeps working, and also to run pytest for IFEX in the container environment(s).
(Some) detailed changes:
Parameterize docker/podman/whatever frontend is desired.
Simplify the specification of preferred python version. Having a .dotfile to specify the version turned out to have different behavior locally vs GitHub actions, so it's simply coded in the Dockerfiles now.
Why? -> The container setup enables:
(now) A "guaranteed to work" method to run IFEX tools, if other installation methods fail.
(now) Isolated execution environment, so when updating the Python version, we can know we are testing with (only) that version on the system and not some other system-installed python files.
(now) Try out different ways of installing and setting up the python environment, for example pyenv (installing python, mostly) and virtualenv (installing dependencies in local env, mostly).
(now) Better understand if there are particulars to know for a certain distro (currently only Ubuntu and Alpine container versions)
(future) Prepare for possibility to test over many python versions, to catch regressions, unsupported language features, or other issues. Although, that could also be done completely within GitHub actions workflows.
NOTES:
The Ubuntu container version uses pyenv which installs/builds Python from source code.
The Alpine version uses a pre-baked binary release and a virtual environment.
It's good because it creates diversity in testing, but the original reason was to work around bugs with pyenv / compiling python from source on the alpine variant.
NOTE: The container builds/tests are a bit heavier on network/execution time, so they run on pull requests only, compared to the traditional unit test and docs generation that runs also on pushes.
Significant update of the docker/container files.
Primary reason for the update:
(Some) detailed changes:
Why? -> The container setup enables:
NOTES:
It's good because it creates diversity in testing, but the original reason was to work around bugs with pyenv / compiling python from source on the alpine variant.