Skip to content
Latchkey
Packages in CI

Running tricky packages (native builds, browsers, GPUs) in CI.

How to install and run dependencies that are painful in CI - native-build npm modules, browser automation, ML libraries, and database tooling - without flaky failures.

Node native modules

sharp, node-gyp, bcrypt, canvas.

"403 Forbidden" on Artifactory deployFix Artifactory "403 Forbidden" when deploying an artifact in CI - the token authenticated but the user lacks… "404 ... repository ... not found"Fix Artifactory "404 not found" for a repository in CI - the repo key in the upload or download path does not… "404" repository not found (Artifactory)Fix Artifactory "404 Not Found" for a repository in CI - the registry URL points at a repository key that doe… "409 Conflict" overwriting a releaseFix Artifactory "409 Conflict" when deploying to a release repository in CI - the repo forbids overwriting an… "409 Conflict" (immutable)Fix Artifactory "409 Conflict" in CI - a release repo blocks overwriting an existing artifact, so republishin… "413 Request Entity Too Large"Fix Artifactory "413 Request Entity Too Large" in CI - a reverse proxy or Artifactory upload limit rejected a… "build info ... not found"Fix Artifactory "build info not found" in CI - a promote, scan, or download-by-build step referenced a build… "checksum ... does not match"Fix Artifactory "checksum does not match" in CI - the client-declared SHA-256 differs from the bytes Artifact… "repository ... is not configured for"Fix Artifactory "the repository is not configured for" a package type in CI - an npm/Maven/pip/Docker request… "storage quota exceeded"Fix Artifactory "storage quota exceeded" in CI - the deploy was blocked because the instance or repo reached… Docker "denied" (Artifactory)Fix Docker "denied: requested access to the resource is denied" against an Artifactory registry in CI - docke… Maven "401 Unauthorized" (Artifactory)Fix Maven "status code 401" against Artifactory in CI - settings.xml has no matching <server> credentials for… npm "401 Unauthorized" (Artifactory)Fix npm "401 Unauthorized" against an Artifactory registry in CI - the .npmrc registry line has no _auth/_aut… "401 Unauthorized" from Artifactory npmFix npm "401 Unauthorized" against a JFrog Artifactory npm registry in CI - the request reached Artifactory b… pip "401" (Artifactory index)Fix pip "401 Client Error" against an Artifactory PyPI index in CI - the index-url has no token, or the crede… "Storage quota" exceeded (Artifactory)Fix Artifactory uploads failing because the storage quota is exceeded in CI - Artifactory blocks new deploys… virtual vs remote vs local repoFix Artifactory virtual/remote/local repo confusion in CI - deploying to a virtual or remote repo, or resolvi… "a verified email address is required to publish"Fix cargo "error: api errors ... A verified email address is required to publish crates to crates.io" in CI -… "crate version ... is already uploaded"Fix cargo "error: failed to publish ... crate version X.Y.Z is already uploaded" in CI - crates.io versions a… "no token found, please run `cargo login`"Fix cargo "error: no token found, please run `cargo login` or pass `--token`" in CI - no crates.io token is c… "requested access ... is denied"Fix Docker "denied: requested access to the resource is denied" pushing to a private registry in CI - the log… "401 (Unauthorized)" on pushFix "dotnet nuget push" 401 Unauthorized in CI - the API key is missing, wrong, or expired, or the feed needs… "409 ... package version already exists"Fix "dotnet nuget push" 409 Conflict in CI - the package version already exists on the feed; bump the version… "Access Denied. Please sign up for an account"Fix RubyGems "gem push" 401 authentication failures in CI - no valid API key reached rubygems.org; set GEM_HO… "Repushing of gem versions is not allowed"Fix RubyGems "Repushing of gem versions is not allowed" in CI - the version already exists on rubygems.org an… "404 Not Found" @scope (GitHub Packages)Fix GitHub Packages "npm error 404 Not Found" for a scoped package in CI - the scope is not mapped to npm.pkg… "permission_denied: write_package"Fix GitHub Packages "permission_denied: write_package" in CI - the GITHUB_TOKEN job lacks packages: write, or… "401 Unauthorized" GitHub Packages MavenFix GitHub Packages Maven "status code 401" in CI - settings.xml has no server credentials for the github ser… "npm error 401" from GitHub PackagesFix GitHub Packages npm "401 Unauthorized" in CI - the token lacks the read:packages scope, or .npmrc is not… "missing go.sum entry" / proxy 410 GoneFix Go module errors after tagging in CI - "missing go.sum entry; to add it run go mod download" and proxy.go… "unauthorized: authentication required"Fix Harbor "unauthorized: authentication required" when pushing an image in CI - the docker client is not log… node-pre-gyp in CIFix node-pre-gyp "Pre-built binaries not installable" errors in CI: understand the prebuilt-binary download,… node-sass / sass in CIFix node-sass binary download failures in CI and migrate to the pure-JS sass (Dart Sass) package - the recomm… Using ts-proto in CIGenerate TypeScript from .proto files in CI with protoc and ts-proto: install the compiler, wire the plugin,… fsevents in CIHandle fsevents in CI: it is a macOS-only optional dependency, so keep optional deps enabled and never fail L… Install @napi-rs/canvas in CIInstall @napi-rs/canvas in CI: it ships prebuilt Rust/Skia bindings with no system libs, so keep optional dep… Install @swc/core in CIInstall @swc/core in CI: keep its platform-specific Rust binding optional dependency, avoid cross-platform no… Install tfjs-node in CIInstall @tensorflow/tfjs-node in CI: it downloads a prebuilt libtensorflow binary at install - fix the downlo… Install argon2 in CIInstall node argon2 in CI: it ships prebuilt binaries, but Alpine/musl and ABI mismatches force a source buil… Install bcrypt in CIInstall bcrypt reliably in CI: use prebuilt binaries, add a build toolchain when needed, or switch to pure-JS… Install better-sqlite3 in CIInstall better-sqlite3 reliably in CI: use prebuilt binaries, add Python and a compiler for source builds, an… Install bufferutil in CIInstall bufferutil in CI: this ws speedup addon builds via node-gyp on slim images - add python3 + g++, rebui… Install classic-level in CIInstall classic-level (and legacy leveldown) in CI: they bundle LevelDB and build a C++ addon - use prebuilds… Install cpu-features in CIInstall the cpu-features native addon in CI: it builds via node-gyp as an optional dep of grpc and ssh2 - add… Install DuckDB for Node in CIInstall the DuckDB node package in CI: prefer the prebuilt @duckdb/node-api bindings, avoid the slow C++ sour… Install esbuild in CIInstall esbuild in CI: keep its platform-specific optional binary, avoid copying node_modules across OS/arch,… Install gRPC in CIInstall gRPC for Node reliably in CI: prefer the pure-JS @grpc/grpc-js over the deprecated native grpc packag… Install grpc-tools in CIInstall grpc-tools in CI: it downloads a prebuilt protoc plugin binary at install - fix blocked downloads, Al… Install headless-gl in CIInstall headless-gl (the gl package) in CI: it builds a C++ addon needing GL/X11 dev libs, and runs under Xvf… Install isolated-vm in CIInstall isolated-vm in CI: it compiles a heavy C++ V8 addon, so add Python and a modern g++/clang, give the b… Install node-canvas in CIInstall node-canvas in CI without build failures: add the Cairo, Pango, and libjpeg system libraries, and fix… Install protobufjs in CIInstall protobufjs in CI: it is pure JS, but its postinstall and pbjs/pbts CLIs need an unblocked install - a… Install re2 in CIInstall the re2 npm package reliably in CI: use prebuilt binaries, add a C++ toolchain for source builds, and… Install serialport in CIInstall the serialport npm package reliably in CI: use prebuilt bindings, add a toolchain for source builds,… Install sharp in CIInstall sharp reliably in CI: use the prebuilt libvips binaries, avoid musl/Alpine mismatches, and stop "Coul… Install snappy in CIInstall the Node snappy compression addon in CI: modern versions ship prebuilt Rust bindings, so keep optiona… Install sodium-native in CIInstall sodium-native reliably in CI: use its prebuilt libsodium binaries, add a toolchain for source builds,… Install sqlite3 in CIInstall the sqlite3 npm package reliably in CI: use prebuilt binaries, add a toolchain for source builds, and… Install ws addons in CIInstall the ws WebSocket optional addons in CI: bufferutil and utf-8-validate compile via node-gyp - add a to… node-gyp in CIFix node-gyp build failures in CI: install Python and a C/C++ toolchain, and stop "gyp ERR! find Python" and… libvips in CIProvide libvips reliably in CI for sharp and image tooling: use the bundled libvips, install the system libra… node-canvas alternatives in CIPick a CI-friendly node-canvas alternative: @napi-rs/canvas or skia-canvas bundle their engine and skip the C… Using Cypress in CIRun Cypress in CI: install the binary, add Linux dependencies, cache ~/.cache/Cypress, run headless, and fix… Using dd-trace in CIRun dd-trace for Node in CI: install it, decide whether to enable tracing in test runs, handle the native ppr… Using esbuild in CIRun esbuild in CI: let the correct platform binary install via optional dependencies, avoid cross-platform lo… Using gRPC in CIRun gRPC for Node in CI end to end: use @grpc/grpc-js, generate stubs with proto-loader or protoc, cache, and… Run pino in CIRun pino in CI: its sonic-boom and worker-thread transports (pino-pretty) can break in bundled or slim enviro… Using Playwright in CIRun Playwright Node tests in CI: install browsers with system deps, cache the browser binaries, run headless,… Using Prisma in CIRun Prisma reliably in CI: generate the client, apply migrations against a service database, cache the query… Using Puppeteer in CIRun Puppeteer in CI: install the bundled Chromium, add the system libraries it needs, use --no-sandbox, and f… Using Sequelize in CIRun Sequelize in CI: start a database service container, install the right driver, run migrations, and fix di… Using SWC in CIRun @swc/core in CI: install the right native binding via optional dependencies, handle musl/glibc, cache cor… Using TypeORM in CIRun TypeORM in CI: install the driver, run migrations against a service database, handle decorators/ts-node,… Using Sentry CLI in CIUse the Sentry CLI in CI to create releases and upload sourcemaps: install it, set the auth token and org/pro… jf "401 Unauthorized"Fix JFrog "401 Unauthorized" in CI - the jf CLI reached Artifactory but sent no valid credential because JF_A… jf "403 Forbidden"Fix JFrog "403 Forbidden" in CI - the token authenticated but the principal lacks deploy or read permission o… "access token expired"Fix JFrog "access token expired" in CI - the JF_ACCESS_TOKEN passed its expiry, so every authenticated jf cal… jf "connection refused"Fix jf "connection refused" or "no such host" in CI - JF_URL points at the wrong host, port, or scheme, or om… "jf rt build-publish ... failed"Fix "jf rt build-publish failed" in CI - the build info could not be published because no build parts were co… "jf: command not found"Fix "jf: command not found" in CI - the JFrog CLI is not installed on the runner because the setup-jfrog-cli… "requires a valid ... license"Fix JFrog "requires a valid license" in CI - a jf command used a feature (Xray, build promotion, distribution… "Server ID ... does not exist"Fix JFrog "Server ID does not exist" in CI - a jf command referenced a named server that was never configured… "not authorized to deploy"Fix Artifactory "You are not authorized to deploy artifacts" in CI - the token authenticated but the deploy p… "context path" 404 (reverse proxy)Fix JFrog reverse-proxy 404s in CI - JF_URL omits or duplicates the /artifactory context path, so API request… Xray "scan ... failed"Fix JFrog Xray "scan failed" in CI - the jf scan or build-scan could not complete because the index was incom… Xray "violations found"Fix JFrog Xray "violations found" failing a CI gate - a security or license policy watch flagged the build an… "Missing signature for file"Fix Maven Central "Missing signature for file" / unsigned artifact errors in CI - Central requires every arti… "Missing: ... javadoc.jar / sources.jar"Fix Maven Central validation failures for missing javadoc and sources jars in CI - Central requires -sources.… "status: 401 Unauthorized"Fix Maven "Failed to deploy artifacts ... status: 401 Unauthorized" to Central in CI - the server credentials… "Repository does not allow updating assets"Fix Nexus "status code 400 ... Repository does not allow updating assets" on deploy in CI - a release repo fo… "401 Unauthorized" from NexusFix Sonatype Nexus "Received status code 401 ... Unauthorized" on deploy in CI - the server settings credenti… "403 Forbidden" Nexus npm publishFix npm "403 Forbidden" publishing to a Sonatype Nexus npm hosted repo in CI - the authenticated user lacks t… Nexus proxy "remote fetch failed"Fix Nexus proxy repositories returning 404/failed for packages that exist upstream in CI - the proxy could no… "E401 ... no auth token"Fix npm "E401 Unauthorized ... no auth token" against a private registry in CI - .npmrc has no _authToken lin… "Provenance generation ... failed"Fix npm publish --provenance failures in CI - provenance needs an OIDC id-token, so the workflow must grant i… "402 Payment Required"Fix "npm ERR! code E402 ... 402 Payment Required" in CI - publishing a scoped package as private requires a p… "403 Forbidden - PUT ... permission to publish"Fix "npm ERR! 403 Forbidden - PUT https://registry.npmjs.org/<pkg> - You do not have permission to publish" i… "cannot publish over previously published version"Fix "npm ERR! code E409 ... You cannot publish over the previously published versions" in CI - the version in… "ENEEDAUTH - This command requires you to be logged in"Fix "npm ERR! code ENEEDAUTH ... This command requires you to be logged in" in CI - no auth token reached the… "This operation requires a one-time password"Fix "npm ERR! code EOTP ... This operation requires a one-time password" in CI - 2FA is set to require an OTP… "401 Unauthorized" (OSSRH deploy)Fix OSSRH/Sonatype "status code 401 Unauthorized" on deploy in CI - settings.xml lacks the ossrh server crede… "Missing Signature" (OSSRH gpg)Fix OSSRH staging "Missing Signature" failures in CI - Maven Central requires a .asc GPG signature for every… OSSRH "staging rules failure"Fix OSSRH "Failed: ... staging rules failure" when closing a staging repository in CI - required metadata lik… "valid token, but no corresponding ... trusted publisher"Fix PyPI trusted publishing OIDC errors in CI - the workflow exchanged an OIDC token but PyPI found no matchi… "`long_description` has syntax errors"Fix twine check "warning: `long_description` has syntax errors in markup and would not be rendered on PyPI" i… "File already exists"Fix twine "HTTPError: 400 Bad Request ... File already exists" in CI - PyPI does not allow overwriting a rele… "403 Forbidden ... invalid or non-existent authentication"Fix twine "HTTPError: 403 Forbidden ... Invalid or non-existent authentication information" in CI - PyPI reje… "not allowed to publish" (Verdaccio)Fix Verdaccio "403 ... user is not allowed to publish this package" in CI - the authenticated user is not per…

Browsers & E2E

Puppeteer, Playwright, Cypress.

Cypress binary in CIInstall and cache the Cypress binary in CI: understand the separate binary download, cache ~/.cache/Cypress,… Run Playwright in CIInstall Playwright browsers in CI: npx playwright install --with-deps pulls every browser plus the OS librari… Installing geckodriver in CIInstall Firefox and geckodriver in CI for Selenium/WebDriver: match versions, add system libraries, run headl… Installing Chromium in CIInstall headless Chromium in CI: add the shared libraries it needs, choose distro Chromium vs a managed downl… Installing Playwright browsersInstall Playwright browser binaries in CI: use install --with-deps, cache by version, install only the browse… Run Applitools in CIRun Applitools Eyes in CI: provide APPLITOOLS_API_KEY, set a stable batch ID for sharded jobs, render via the… Run axe-core in CIRun axe-core in CI: it injects into a real browser via Playwright/Puppeteer, so install the browser, run head… BrowserStack/Sauce in CIRun BrowserStack or Sauce Labs tests in CI: provide the username/access-key secrets, start the local tunnel f… Run Chromatic in CIRun Chromatic in CI: build Storybook, run the chromatic action with a project token, fetch full git history f… Run chromedriver in CIRun chromedriver in CI without SessionNotCreated errors: match the driver to the exact Chrome version using C… Run CodeceptJS in CIRun CodeceptJS in CI: its helper decides the setup - Playwright needs browser install, WebDriver needs a driv… Run Cypress in CIRun Cypress in CI: install the Linux libraries it needs, cache the Cypress binary, wait for the app to be rea… Run Electron tests in CIRun Electron app tests in CI on Linux: launch under a virtual display with xvfb-run, install the GUI librarie… Run headless Chrome in CIRun headless Chrome or Chromium in CI: install the GUI shared libraries, launch with --no-sandbox --disable-d… Run headless Firefox in CIRun headless Firefox with geckodriver in CI: install Firefox and a compatible geckodriver, run with -headless… Running Lighthouse in CIRun Lighthouse audits in CI with lhci: install Chrome, configure the autorun collect/assert flow, run headles… Run Lighthouse CIRun Lighthouse CI in your pipeline: install Chrome and its libraries, pass --no-sandbox via chromeFlags, serv… Run Edge in CIRun Microsoft Edge with Playwright in CI: install the Edge channel with --with-deps, target channel "msedge",… Run Nightwatch in CIRun Nightwatch in CI: it needs a browser and a matching WebDriver (chromedriver/geckodriver) - install both,… Run pa11y in CIRun pa11y accessibility tests in CI: it drives headless Chrome via Puppeteer, so add --no-sandbox and the Chr… Running Percy in CIRun Percy visual tests in CI: install the CLI, set PERCY_TOKEN, wrap your test command with percy exec, and f… Run Percy in CIRun Percy visual tests in CI: wrap your test command with percy exec, provide PERCY_TOKEN as a secret, and ha… Run Playwright WebKit in CIRun Playwright WebKit in CI: install the webkit browser with its extra Linux libraries via --with-deps, and f… Run Puppeteer in CIRun Puppeteer in CI without crashes: install the missing Chrome libraries, launch with --no-sandbox and --dis… puppeteer-cluster in CIRun puppeteer-cluster in CI: it launches many Chrome instances, so add --no-sandbox, mount enough /dev/shm, c… Run Selenium in CIRun Selenium WebDriver in CI: match the driver to the browser version, pass headless --no-sandbox options, an… Selenium WebDriver in CIRun Selenium WebDriver in CI: provide a matching browser and driver, use Selenium Manager or a service contai… Run TestCafe in CIRun TestCafe in CI: it drives system-installed browsers, so install Chrome/Chromium and run the headless :hea… Run Storybook tests in CIRun the Storybook test-runner in CI: install Playwright browsers with --with-deps, build and serve Storybook… Storybook test-runner in CIRun the Storybook test-runner in CI: serve a built Storybook, install Playwright browsers, wait for the serve… Run WebdriverIO in CIRun WebdriverIO in CI: configure headless capabilities with --no-sandbox, let the driver services manage vers… Installing WebKit in CIRun WebKit browser tests in CI via Playwright: install the WebKit build with its system deps, cache the binar… Run Xvfb in CIUse Xvfb to give GUI apps a virtual display in CI: install xvfb, wrap commands with xvfb-run, set the screen…

Data, ML & DB

Prisma, TensorFlow, OpenCV, psycopg2.

"401 Unauthorized" from devpiFix pip 401 from a devpi private index in CI - the extra-index-url has no credentials or the devpi user token… nbconvert in CIRun and convert Jupyter notebooks in CI with nbconvert: install a kernel, execute headlessly, handle Pandoc/T… Pandas in CIRun Pandas in CI without source builds or OOM - keep the prebuilt wheel, pin a Python with wheels, and watch… PyTorch in CIRun PyTorch in CI without pulling gigabytes of CUDA - install the CPU build from the PyTorch index, pin a sup… TensorFlow in CIRun TensorFlow in CI without OOM or slow installs - use tensorflow-cpu, pin a supported Python (no Alpine), c… Cartopy in CIInstall Cartopy in CI: keep the prebuilt wheel, or add libgeos-dev + libproj-dev + proj-data when building fr… CatBoost in CIInstall CatBoost in CI: keep the large prebuilt wheel, pin a supported Python, avoid Alpine/musl source build… Installing DuckDB in CIInstall the DuckDB Python package in CI: use prebuilt wheels, avoid Alpine source builds, cache pip, and fix… DuckDB (Python) in CIInstall duckdb (Python) in CI: keep the prebuilt wheel that bundles the engine, avoid Alpine source builds, p… ffmpeg-python in CIInstall ffmpeg-python in CI: the pip package is a thin wrapper, so the real fix is installing the ffmpeg bina… Fiona in CIInstall Fiona in CI: modern wheels bundle GDAL, so keep the wheel - a source build needs a version-matched li… GDAL in CIInstall GDAL in CI without "gdal-config not found" or version mismatch - install libgdal-dev first, then pin… gensim in CIInstall gensim in CI without compiling its Cython/NumPy extensions - keep the prebuilt wheel, pin a Python wi… GeoPandas in CIInstall GeoPandas in CI: modern wheels of its shapely/pyogrio/pyproj deps bundle GEOS/GDAL/PROJ, so keep the… h5py in CIInstall h5py in CI without "HDF5 library not found" - keep the prebuilt wheel that bundles HDF5, or add libhd… HF datasets in CIInstall Hugging Face datasets in CI: cache downloads with HF_DATASETS_CACHE, set HF_HUB_OFFLINE for tests, us… diffusers in CIInstall Hugging Face diffusers in CI: install CPU torch, cache pipeline weights with HF_HOME, use a tiny test… transformers in CIInstall Hugging Face transformers in CI: install a CPU torch backend, cache model downloads with HF_HOME, set… librosa/soundfile in CIInstall librosa and soundfile in CI: soundfile needs the libsndfile system library, so add libsndfile1, plus… lxml in CIInstall lxml in CI without compiling - prefer the prebuilt wheel, or add libxml2-dev + libxslt1-dev + zlib1g-… Installing lxml in CIInstall lxml reliably in CI: use prebuilt wheels, add libxml2/libxslt dev libs for source builds, cache pip,… MoviePy in CIInstall MoviePy in CI: it needs the ffmpeg binary for video and ImageMagick for text/captions - add both via… Installing mysqlclient in CIInstall mysqlclient in CI: add the MySQL client dev libraries and compiler, connect to a MySQL service, and f… mysqlclient in CIInstall mysqlclient in CI without "Cannot find mysql_config" - add default-libmysqlclient-dev + pkg-config +… netCDF4 in CIInstall netCDF4 in CI: modern wheels bundle HDF5 and netCDF-C, so keep the wheel - a source build needs libne… NumPy/SciPy in CIInstall NumPy and SciPy in CI without a 20-minute source build - keep the prebuilt wheels, avoid Alpine/musl,… Installing NumPy in CIInstall NumPy reliably in CI: use prebuilt manylinux wheels, avoid slow source builds, pin the version, cache… onnxruntime in CIInstall onnxruntime in CI: keep the prebuilt CPU wheel, do not pull the multi-GB GPU build on a CPU runner, a… Installing OpenCV in CIInstall OpenCV in CI: use opencv-python-headless to avoid GUI libs, or add libgl1 for the full package, cache… OpenCV in CIInstall opencv-python in CI without "ImportError: libGL.so.1" - use the prebuilt wheel and add the libgl1/lib… Installing pandas in CIInstall pandas reliably in CI: use prebuilt wheels, keep NumPy ABI-compatible, add optional engine deps when… Pillow in CIInstall Pillow in CI without compiling - keep the prebuilt wheel, or add libjpeg-dev + zlib1g-dev (and libfre… Installing Pillow in CIInstall Pillow reliably in CI: use prebuilt wheels, add JPEG/zlib/freetype libs for a source build, cache pip… Installing Polars in CIInstall Polars reliably in CI: use prebuilt wheels, pick the right CPU-feature variant for older hardware, ca… Polars in CIInstall Polars in CI without a Rust compile - keep the prebuilt wheel, pick polars-lts-cpu for old/odd CPUs,… psycopg2 in CIInstall psycopg2 in CI without "pg_config executable not found" - use psycopg2-binary, or add libpq-dev + pyt… Installing psycopg2 in CIInstall psycopg2 in CI: use psycopg2-binary or add libpq-dev for a source build, connect to a Postgres servic… pyarrow in CIInstall pyarrow in CI without compiling the Arrow C++ library - keep the prebuilt wheel, pin a Python with wh… PyAudio in CIInstall PyAudio in CI: it compiles against PortAudio, so add portaudio19-dev + a compiler - and remember ther… pydub in CIInstall pydub in CI: it is pure Python but shells out to ffmpeg/avconv for compressed audio - add the ffmpeg… PyMuPDF in CIInstall PyMuPDF (fitz) in CI: keep the prebuilt wheel that bundles MuPDF, pin a supported Python, avoid Alpin… PyTables in CIInstall PyTables (tables) in CI: keep the prebuilt wheel that bundles HDF5 and Blosc - a source build needs l… cryptography in CIInstall the Python cryptography package in CI without a Rust/OpenSSL build - keep the prebuilt wheel, or add… Using PyTorch in CIInstall PyTorch in CI: use the CPU index URL to skip CUDA wheels, pin versions, cache pip, and fix multi-GB d… rasterio in CIInstall rasterio in CI: modern wheels bundle GDAL, so keep the wheel - a source build needs a version-matched… Installing scikit-learn in CIInstall scikit-learn reliably in CI: use prebuilt wheels, keep NumPy/SciPy ABI-compatible, set OpenMP threads… scikit-learn in CIInstall scikit-learn in CI without compiling Cython/OpenMP - keep the prebuilt wheel, pin a Python with wheel… Installing SciPy in CIInstall SciPy reliably in CI: use manylinux wheels to skip the BLAS/LAPACK/Fortran build, pin compatible NumP… sentence-transformers in CIInstall sentence-transformers in CI: install CPU torch, cache embedding-model downloads with HF_HOME, use a t… Shapely in CIInstall Shapely in CI: modern wheels bundle GEOS, so keep the wheel - a source build needs libgeos-dev, and a… spaCy in CIInstall spaCy in CI: keep the prebuilt wheel, then download the language model as a pinned pip dependency (no… Using TensorFlow in CIInstall TensorFlow reliably in CI: use the CPU wheel, pin a Python it supports, silence GPU/CUDA warnings, ca… Wand (ImageMagick) in CIInstall Wand in CI: the pip package needs ImageMagick’s MagickWand shared library - add libmagickwand-dev, an… WeasyPrint in CIInstall WeasyPrint in CI: the pip package needs the Pango, Cairo, GDK-PixBuf, and HarfBuzz system libraries -… XGBoost/LightGBM in CIInstall XGBoost and LightGBM in CI: keep the prebuilt wheels and add the OpenMP runtime (libgomp1) so import… Using dbt in CIRun dbt in CI: install the right adapter, provide warehouse credentials via env, run deps/build, cache pip, a… Using Great Expectations in CIRun Great Expectations in CI: install the right datasource extras, point at a test database, run checkpoints… Installing matplotlib in CIRun matplotlib in CI without a display: use the Agg backend, install fonts for stable text, cache pip, and fi… Prisma in CIRun Prisma in CI reliably - run prisma generate after install, set the right binaryTargets for the runner, pr… Using PySpark in CIRun PySpark in CI: install a matching JDK, set JAVA_HOME, run a local Spark session, cache pip, and fix "JAVA… wkhtmltopdf in CIRun wkhtmltopdf in CI: install the patched-Qt binary plus its shared libraries, run headless under Xvfb when… "409 File already exists"Fix twine "HTTPError: 409 Conflict ... File already exists" against a private pypiserver in CI - the same ver… "403 Forbidden" from twine uploadFix twine "HTTPError: 403 Forbidden" uploading to a private PyPI index in CI - the credentials are missing or…
Explore other topics