zarfld / LinuxCnc_PokeysLibComp

Pokeys comp for LinuxCnc using https://bitbucket.org/mbosnak/pokeyslib.git
MIT License
5 stars 0 forks source link

CI-Pipeline für automatische Tests und Kompilierung gegen LinuxCNC #34

Open zarfld opened 1 month ago

zarfld commented 1 month ago

CI Pipeline for Automatic Testing and Compilation against LinuxCNC and PoKeysLib

Description:

To ensure that the LinuxCnc_PokeysLibComp repository is always compatible with the latest version of LinuxCNC and the latest version of PoKeysLib, we want to set up a Continuous Integration (CI) pipeline. This pipeline will automatically be triggered on every push or pull request and perform the following steps:

Requirements:

  1. LinuxCNC Installation:

  2. PoKeysLib Installation:

  3. Compilation:

    • The code should be compiled in a temporary directory (e.g., build/).
    • Compilation should be done using CMake.
  4. Testing:

    • After successful compilation, tests (if available) should be executed. These could be run via a script like run_tests.sh or through other defined testing methods.
  5. Trigger:

    • The pipeline should be triggered on every push to the main branch and on every pull request to the main branch.

Steps for Implementation:

  1. Create a CI File:

    • Create a directory .github/workflows/ in the repository.
    • Create a CI configuration file (e.g., ci.yml) to define the build process.
  2. Define the CI Pipeline:

    • Configure the pipeline to perform the installation, compilation, and testing steps as outlined in the requirements.
    • Ensure that the pipeline installs the latest versions of LinuxCNC and PoKeysLib from their respective repositories.
  3. Set Up Dependencies:

    • Install necessary build tools such as build-essential, cmake, and git.
    • Ensure all dependencies are correctly installed before compilation.
  4. Compilation Process:

    • Use CMake to configure the build environment.
    • Compile the project using all available CPU cores for efficiency.
  5. Testing Process:

    • Implement tests to verify the functionality of the compiled code.
    • Integrate the test execution into the pipeline to run automatically after compilation.

Expected Outcome:

zarfld commented 1 month ago

Fetched 13.6 MB in 2s (8353 kB/s) Reading package lists... Installing dependencies... Reading package lists... Building dependency tree... Reading state information... Package libreadline-gplv2-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source

Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python2-dev python2 python-dev-is-python3

E: Unable to locate package python3-gtk2 E: Unable to locate package libxenomai-dev E: Package 'libreadline-gplv2-dev' has no installation candidate E: Unable to locate package python-lxml E: Package 'python-dev' has no installation candidate E: Unable to locate package python-gtk2 Error: Process completed with exit code 100.