Files
Crazywoola 31cdfde4dd ci: speed up plugin workflows with caching and concurrency (#2997)
* ci: speed up plugin workflows with caching and concurrency

Cuts redundant work on every matrix shard:

- Add concurrency cancellation so superseded PR runs are killed.
- Cache .scripts/ (marketplace toolkit + Dify CLI) keyed on the
  upstream toolkit SHA + CLI release tag; clone/download only on miss.
- Enable astral-sh/setup-uv cache keyed per plugin lockfile so uv sync
  / pip install reuse the wheel store across shards and runs.
- Fold the dependency-check and plugin-install venvs into one shared
  venv to halve venv-creation time per shard.
- Shrink fetch-depth to 1 on PR checkouts (detect-changes uses gh api,
  test job doesn't diff git history).
- Drop the 'edited' PR trigger so title/body edits no longer re-run
  the full matrix.

Pin gh release download to the resolved CLI tag so the cached binary
matches the cache key. Upload workflow keeps fetch-depth: 0 because
detect-changed-plugins.sh diffs github.event.before..HEAD which can
span multiple commits.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: refactor PR template for clarity and easier media uploads

Consolidate three "This PR contains Changes to" headers into a single
Change Type triage list, drop eight duplicated screenshot reminder
comments in favor of one Screenshots / Videos section with a Before/After
table stub, and collapse the LLM-affected-areas checklist behind a
<details> block so non-LLM PRs aren't visually swamped.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-28 15:25:22 +08:00

2.3 KiB

Summary

Change Type

  • Documentation / non-plugin change
  • Non-LLM plugin (tools, extensions, datasource, etc.)
  • LLM plugin

Screenshots / Videos

Before After

LLM Plugin Checklist

Areas affected by this change (check all that apply)
  • Message flow (system messages, user ↔ assistant turn-taking)
  • Tool interaction flow (multi-round usage, Agent App and Agent Node)
  • Multimodal input (images, PDFs, audio, video, etc.)
  • Multimodal output (images, audio, video, etc.)
  • Structured output (JSON, XML, etc.)
  • Token consumption metrics
  • Other LLM functionality (reasoning, grounding, prompt caching, etc.)
  • New models / model parameter fixes

Version

  • Bumped top-level version in manifest.yaml (not the one under meta)
  • dify_plugin>=0.3.0,<0.6.0 is declared in pyproject.toml and locked in uv.lock (or kept in requirements.txt for legacy plugins without uv.lock) — SDK docs

Testing

  • Local deployment — Dify version:
  • SaaS (cloud.dify.ai)