Issue: Improve CI Pipeline to Handle Dependency Installation and Build Errors
Description
The current CI pipeline for the LinuxCNC_PokeysLibComp repository occasionally fails due to issues related to package installations, missing dependencies, or build errors. To enhance the reliability and robustness of the pipeline, we propose the following improvements:
Retry Logic for Package Installation: Implement retry logic for apt-get to handle transient issues during package installation.
Cache Dependencies: Use GitHub Actions caching to store build artifacts, package lists, and dependencies to speed up future runs and avoid repeated installations.
Matrix Builds: Test the project against multiple versions of Ubuntu (e.g., 18.04, 20.04, 22.04) to ensure compatibility with different environments.
Use the Latest Version of PoKeysLib: Integrate the latest version of PoKeysLib in the CI pipeline. Clone the repository from PoKeysLib Repository and ensure it is built and tested alongside the LinuxCNC_PokeysLibComp components.
Automate Workflow for Failures: If a build fails due to missing packages or dependency errors, implement automated solutions to handle such cases (e.g., cleaning up, updating package lists, or providing custom repositories).
Tasks
[ ] Update Package Lists Before Installing: Ensure apt-get update is always run before package installations.
[ ] Implement Retry Logic: Add retry logic to the apt-get install commands to handle temporary failures (e.g., retry up to 3 times).
[ ] Use Cache: Implement caching for dependencies and build artifacts to speed up builds.
[ ] Matrix Builds: Add a matrix build strategy to test against multiple Ubuntu versions.
[ ] Integrate PoKeysLib: Clone and build the latest PoKeysLib repository and run it in conjunction with the LinuxCNC_PokeysLibComp build process.
[ ] Add Logs for Failure: Upload logs in case of build or test failures to help diagnose issues.
[ ] Version Compatibility: Ensure that the pipeline tests against both the latest version of LinuxCNC and the stable version.
i curently get these errors:
Current runner version: '2.319.1'
Operating System
Runner Image
Runner Image Provisioner
GITHUB_TOKEN Permissions
Secret source: Actions
Prepare workflow directory
Prepare all required actions
Getting action download info
Error: This request has been automatically failed because it uses a deprecated version of actions/upload-artifact: v[2](https://github.com/zarfld/LinuxCnc_PokeysLibComp/actions/runs/11076741051/job/30780476074#step:1:2). Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Issue: Improve CI Pipeline to Handle Dependency Installation and Build Errors
Description
The current CI pipeline for the
LinuxCNC_PokeysLibComp
repository occasionally fails due to issues related to package installations, missing dependencies, or build errors. To enhance the reliability and robustness of the pipeline, we propose the following improvements:Retry Logic for Package Installation: Implement retry logic for
apt-get
to handle transient issues during package installation.Cache Dependencies: Use GitHub Actions caching to store build artifacts, package lists, and dependencies to speed up future runs and avoid repeated installations.
Matrix Builds: Test the project against multiple versions of Ubuntu (e.g., 18.04, 20.04, 22.04) to ensure compatibility with different environments.
Use the Latest Version of
PoKeysLib
: Integrate the latest version ofPoKeysLib
in the CI pipeline. Clone the repository from PoKeysLib Repository and ensure it is built and tested alongside theLinuxCNC_PokeysLibComp
components.Automate Workflow for Failures: If a build fails due to missing packages or dependency errors, implement automated solutions to handle such cases (e.g., cleaning up, updating package lists, or providing custom repositories).
Tasks
apt-get update
is always run before package installations.apt-get install
commands to handle temporary failures (e.g., retry up to 3 times).PoKeysLib
repository and run it in conjunction with theLinuxCNC_PokeysLibComp
build process.Reference Links:
i curently get these errors: Current runner version: '2.319.1' Operating System Runner Image Runner Image Provisioner GITHUB_TOKEN Permissions Secret source: Actions Prepare workflow directory Prepare all required actions Getting action download info Error: This request has been automatically failed because it uses a deprecated version of
actions/upload-artifact: v[2](https://github.com/zarfld/LinuxCnc_PokeysLibComp/actions/runs/11076741051/job/30780476074#step:1:2)
. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/