Open
Conversation
11998e4 to
8e3676f
Compare
🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: 8e9901f | Docs | Datadog PR Page | Give us feedback! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files🚀 New features to boost your workflow:
|
ead75ea to
9efad22
Compare
9efad22 to
8e9901f
Compare
Contributor
Validation ReportAll 20 validations passed. Show details
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds
.github/actions/setup-ddevas the shared install path for workflows that needddev.The action validates its supported inputs up front:
install-modecan belocalorpypi, andcache-profilecan belocal-ddev-baseorlocal-ddevfor local installs. It installsuvwith the setup-uv cache disabled, restores the shared uv and pip cache explicitly, installsddev, then saves a warmed cache when the exact daily cache key was not already present.For local integrations-core installs, the action installs editable
datadog_checks_dev[cli]andddevfrom the checkout. The defaultlocal-ddev-basecache profile keys the cache on the Python location plus thedatadog_checks_base,datadog_checks_dev, andddevpyproject files. Thelocal-ddevprofile is available for jobs that only need thedatadog_checks_devandddevdependency set.For non-core reusable workflow callers, the action uses
install-mode: pypiand installsddevfrom PyPI. Those jobs restore and save a separate PyPI cache namespace keyed by Python location, requested ddev version, and the daily cache suffix.The cache restore order is exact daily key first, then a same-dependency daily prefix, then the previous non-daily key shape, then a broader same-Python fallback. This lets jobs reuse existing caches while also letting the first job of the day refresh the restored cache after
uv pip installdownloads any missing artifacts.Core workflows that install
ddevnow call this action directly. Reusable workflows that can run from integrations-extras or marketplace still check out integrations-core intocore-tempand call./core-temp/.github/actions/setup-ddev, so the composite action does not need to exist in the caller repository.Motivation
Several workflows installed
ddevwith plainpipor carried their own uv/cache setup. That made installs slower and made it easy for workflows with the same dependency set to use different cache keys.Centralizing the setup gives all core
ddevinstalls the same cache behavior and makes the cache self-warming from the install action itself, instead of relying only on a separate warmer workflow.This is non-breaking for integrations-extras and marketplace because this PR only changes integrations-core. Workflows in those repositories that install
ddevdirectly are untouched until those repositories are changed. For reusable workflows invoked from integrations-core, non-core callers use thecore-tempcheckout path and PyPI install mode, so they do not need the new composite action in their own repositories. The cache restore keys also keep the previous cache key shape as a fallback, so existing caches remain reusable while new daily caches are populated.Review checklist (to be filled by reviewers)
qa/skip-qalabel if the PR does not need to be tested during QA.backport/<branch-name>label to the PR and it will automatically open a backport PR once this one is mergedValidation
YAML.load_file.git diff --check.pip install ... ddevremains.actionlintwas not available locally.