Resolving GitHub CI/CD Issues with Self-Hosted Ubuntu 20.04 Runners
Last updated: October 29, 2025
Problem Description
When using self-hosted Ubuntu 20.04 runners for GitHub CI/CD workflows, the build process fails due to inability to build wheels for cryptography and missing Python 3.10. This typically occurs when switching from ubuntu-latest to older self-hosted runners due to network restrictions or Azure Container Registry (ACR) access requirements.
Symptoms
CI/CD workflow breaks when using self-hosted Ubuntu 20.04 runners
Unable to build wheels for cryptography package
Python 3.10 not found errors
Connection issues to Azure Container Registry from IP addresses outside network
Root Cause
The issue occurs because older Ubuntu versions (20.04) may not have the required Python version or dependencies needed for the default Dagster Cloud CLI pex file installation. Network restrictions may also force the use of self-hosted runners that lack the proper environment setup.
Solution
Replace the pex file installation method with direct dagster-cloud CLI installation in your GitHub Actions workflow.
Step-by-Step Resolution
Modify your GitHub Actions workflow to install the dagster-cloud CLI directly instead of using the pex file
Move the CLI installation step to the beginning of your workflow to ensure it's available for all subsequent steps, including branch deployment cleanup
Test the modified workflow on your self-hosted Ubuntu 20.04 runner to verify it can successfully build images and upload to ACR
Alternative Solutions (if applicable)
If you don't require dagster-pipes functionality, you can use a downgraded version of the CI/CD workflow that provides basic functionality for building images and uploading to ACR while maintaining compatibility with Ubuntu 20.04.
Prevention
When setting up self-hosted runners, ensure they have the required Python version and dependencies installed. Consider using containerized runners or updating to more recent Ubuntu versions when network policies allow.