Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/generate-command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ name: Generate SDK
description: Validate generation without creating a PR
type: boolean
default: false
should_run:
description: Whether the generate job should run (false = skip). Used by callers to pass path-filter results so the job skips internally and reports as 'skipped' (satisfying required checks).
type: boolean
default: true
outputs:
has_changes:
description: Whether the generation produced changes vs committed code
Expand All @@ -69,6 +73,7 @@ concurrency:
jobs:
generate:
name: Generate SDK
if: ${{ inputs.should_run != false }}
runs-on: ubuntu-latest
timeout-minutes: 30
outputs:
Expand Down
21 changes: 17 additions & 4 deletions .github/workflows/test-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
# workflow that never runs as "expected" (pending), which blocks required checks.
# Instead, we filter paths at the job level so skipped jobs report as "skipped"
# (equivalent to "passed" for required checks).
#
# The path filter is scoped to generation-affecting files only (Speakeasy config,
# gen.yaml, overlays, scripts, src/, etc.). Dev dependency updates (mypy, pylint,
# etc.) skip the generation validation because they don't change generated
# artifacts, and Dependabot PRs lack the SPEAKEASY_API_KEY secret needed to run
# the generation pipeline.

name: Test (Full)

Expand All @@ -39,19 +45,26 @@ jobs:
with:
filters: |
generation:
- '**'
- '!README.md'
- '!docs/**'
- '.speakeasy/**'
- '.genignore'
- '.github/speakeasy/**'
- '.github/workflows/generate-command.yml'
- 'gen.yaml'
Comment thread
aaronsteers marked this conversation as resolved.
Outdated
- 'overlays/**'
- 'README.md'
- 'scripts/**'
- 'poe_tasks.toml'
- 'src/**'

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's better to move this into the generate workflow. It's no longer needed here and it is needed there. Rather than calculate here and pass the Boolean, just calculate it there.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

☑️ Resolved in 38c2f1c. Moved the path filter entirely into generate-command.yml:

  • New check-paths job inside generate-command.yml runs only during dry_run mode
  • Generate SDK job: if: always() && (!inputs.dry_run || needs.check-paths.outputs.should_run == 'true')
  • test-full.yml simplified — no more check-paths job or should_run input, just calls generate-command.yml directly

Devin session

outputs:
should_run: ${{ github.event_name == 'workflow_dispatch' || steps.filter.outputs.generation == 'true' }}

validate:
name: Validate Generation (Dry Run)
needs: check-paths
if: needs.check-paths.outputs.should_run == 'true'
uses: ./.github/workflows/generate-command.yml
with:
dry_run: true
should_run: ${{ needs.check-paths.outputs.should_run == 'true' }}
secrets: inherit

Comment thread
aaronsteers marked this conversation as resolved.
zero-diff:
Expand Down
Loading