zarfld / LinuxCnc_PokeysLibComp

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

Pipeline Job to Automatically Build and Create Images for RaspberryPi4 Bullseye, RaspberryPi4 Bookworm, and amd64 Hybrid #85

Open zarfld opened 1 month ago

zarfld commented 1 month ago

Pipeline Job to Automatically Build and Create Images for RaspberryPi4 Bullseye, RaspberryPi4 Bookworm, and amd64 Hybrid

Description:

To align with the image release structure of LinuxCNC, we need to create a pipeline job that automatically builds and creates images for the following targets:

The images should mirror the structure and format used by LinuxCNC, ensuring that they are compatible with the current releases and users can seamlessly use these builds. This process should also account for creating and updating images for future versions.

Proposed Solution:

  1. Create Pipeline Jobs:

    • Set up dedicated jobs in the CI pipeline to automate the build process for each of the target platforms.
    • The pipeline should cross-compile for ARM (for Raspberry Pi 4 images) and natively compile for amd64 (hybrid images).
  2. Reference Existing LinuxCNC Build Structure:

    • Ensure that the images follow the structure currently provided by LinuxCNC:
      • Raspberry Pi Bullseye and Bookworm versions.
      • amd64 Hybrid builds for regular PCs.
    • This includes any necessary packaging, pre-installed dependencies (like real-time kernels), and configuration.
  3. Utilize Existing Build Tools:

    • Leverage tools like linuxcnc-live-build to streamline the image creation process and ensure consistency with official LinuxCNC images.
    • Use QEMU for ARM emulation if needed to ensure image creation can be automated for Raspberry Pi 4 without direct access to ARM hardware.
  4. Test and Validate Images:

    • Add automated testing to the pipeline to validate that the images boot correctly and that LinuxCNC runs as expected on each platform.
    • Perform basic configuration checks for PoKeys integration and the expected LinuxCNC configuration.
  5. Store and Distribute the Images:

    • Store the generated images in the GitHub repository's releases or a suitable cloud storage platform.
    • Provide download links for users in the repository or related documentation.
  6. Ensure Compatibility with the Latest LinuxCNC Versions:

    • Track and maintain compatibility with the latest stable releases of LinuxCNC, specifically for:
      • RaspberryPi 4 Bullseye
      • RaspberryPi 4 Bookworm
      • amd64 Hybrid.

Reference Images:

Tasks:

Acceptance Criteria:

Reference Links:

zarfld commented 1 month ago

update tests to just use the versions as provided on linuxcnc download page