Skip to content

Conversation

jkwak-work
Copy link
Collaborator

  • Validates external/spirv-tools-generated matches current spirv-tools build
  • Only runs when external/spirv-tools or external/spirv-headers are modified
  • Checks spirv-headers commit consistency with spirv-tools DEPS
  • Provides clear error messages and fix instructions

Fixes #8509

@jkwak-work jkwak-work self-assigned this Sep 22, 2025
@jkwak-work jkwak-work added pr: non-breaking PRs without breaking changes CoPilot labels Sep 22, 2025
@jkwak-work jkwak-work force-pushed the ci/protect-spirv-generated branch from cb9f321 to 9ffd551 Compare September 22, 2025 19:35
@slangbot
Copy link
Contributor

🌈 Formatted, please merge the changes from this PR

- Validates external/spirv-tools-generated matches current spirv-tools build
- Only runs when external/spirv-tools or external/spirv-headers are modified
- Checks spirv-headers commit consistency with spirv-tools DEPS
- Provides clear error messages and fix instructions
@jkwak-work jkwak-work force-pushed the ci/protect-spirv-generated branch from 1ab29c1 to d4376bc Compare September 22, 2025 22:55
@mkeshavaNV
Copy link
Contributor

thanks, this really helps with the maintainer duty.

platform: x86_64
config: release
runs-on: '["Windows", "self-hosted", "GCP-T4"]'

Copy link
Contributor

Choose a reason for hiding this comment

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

Do we really need to run this in each CL? I feel like this should be only needed when we try to upgrade the spirv-tools?

@gtong-nv
Copy link
Contributor

I think this workflow can be an indenpendent one that we can manually dispatch, just like Format or Release.
No need to add it in the per-commit CL

TLDR: Restructured workflow to prevent check-ci from hanging when no SPIRV files are modified

Flow Overview:
1. check-spirv-changes: Always runs, detects if external/spirv-tools* files were modified
2. check-spirv-consistency: Conditionally runs only when SPIRV files are modified (job-level conditional)
3. spirv-check-summary: Always runs with clear success/failure reporting

Key Fixes:
- Removed invalid workflow parameters that caused CI syntax errors
- Split single job into three jobs with proper dependency handling
- Added external/spirv-tools-generated to change detection
- Summary job uses if: always() and handles skipped dependencies correctly
- Provides definitive status for check-ci dependency resolution

This prevents the "pending" state that occurred when only YAML files or non-SPIRV files were modified.
@jkwak-work
Copy link
Collaborator Author

I pushed a second commit to resolve the stuck problem at "check-ci".

@gtong-nv , the checking will be skipped when there is no changes in external/spirv-*

@slangbot
Copy link
Contributor

🌈 Formatted, please merge the changes from this PR

@gtong-nv
Copy link
Contributor

gtong-nv commented Sep 23, 2025

There is an issue parsing the workflow file

[Invalid workflow file: .github/workflows/ci.yml#L210](https://github.com/shader-slang/slang/actions/runs/17958945895/workflow)
error parsing called workflow
".github/workflows/ci.yml"
-> "./.github/workflows/check-spirv-tools-generated.yml"
: workflow is not reusable as it is missing a `on.workflow_call` trigger

@shader-slang shader-slang deleted a comment from slangbot Sep 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CoPilot pr: non-breaking PRs without breaking changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI should check external/spirv-tools-generated when external/spirv-tools is modified

4 participants