Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run workflows depending on changed files #11723

Open
wants to merge 27 commits into
base: develop
Choose a base branch
from

Conversation

4e6
Copy link
Contributor

@4e6 4e6 commented Nov 29, 2024

Pull Request Description

close #11579

Changelog:

  • update: assemble all existing workflows executed on PR into a single pull-request.yml workflow. It calls the following checks depending on the files changed and unconditionally on the push to the develop branch.
    • gui-checks.yml GUI Checks
    • storybook.yml Storybook
    • wasm-checks.yml WASM Checks (previously gui-tests.yml GUI Check)
    • engine-checks.yml Engine Checks (previously scala-new.yml Engine CI)
    • gui-packaging.yml GUI Packaging (previously gui.yml GUI Packaging)
  • update: mark macOS jobs with continue-on-error: true to make them optional (currently they are not required to merge to PR). Even if they fail, the final report will be successful.
  • refactor: rename workflow files to match their contents

Important Notes

This PR assembles all the workflows into a pull-request.yml which is dispatched on pull requests and calls all other existing workflows based on the files changed.

GitHub visualization of the workflow is not very comprehensible, so I created this visualization.

                                    +----------------------------+                        
                               +--->| Storybook                  |---+                    
                               |    | storybook.yml              |   |                    
                               |    +----------------------------+   |                    
    +----------------------+   |    +----------------------------+   |                    
+---+ GUI Files Changed    +---+--->| GUI Checks                 |---+                    
|   +----------------------+        | gui-checks.yml             |   |                    
|                                   +----------------------------+   |                    
|                                                                    |                    
|   +----------------------+        +----------------------------+   |   +-----------------+
|   | WASM Files Changed   +------->| WASM Checks                |---+-->| Required Checks |
|   +----------------------+        | wasm-checks.yml            |   |   +-----------------+
|                                   +----------------------------+   |                    
|                                                                    |                    
|   +----------------------+        +----------------------------+   |                    
+---| Engine Files Changed +---+--->| Engine Checks              |---+                    
|   +----------------------+   |    | engine-checks.yml          |   |                    
|                              |    +----------------------------+   |                    
|                              |    +----------------------------+   |                    
|                              +--->| Engine Checks (macOS)      |   |                    
|                                   | engine-checks-optional.yml |   |                    
|                                   +----------------------------+   |                    
|                                                                    |                    
|                                   +----------------------------+   |                    
+------------------------------+--->| GUI Packaging              |---+                    
                               |    | gui-packaging.yml          |                        
                               |    +----------------------------+                        
                               |    +----------------------------+                        
                               +--->| GUI Packaging (macOS)      |                        
                                    | gui-packaging-optional.yml |                        
                                    +----------------------------+                        

The final report is required to gather the results of all (possibly skipped) checks. This will be the only required check to merge the PR.

@4e6 4e6 added CI: No changelog needed Do not require a changelog entry for this PR. -ci -build-script Category: build script labels Nov 29, 2024
@4e6 4e6 self-assigned this Nov 29, 2024
Copy link

github-actions bot commented Nov 29, 2024

🧪 Storybook is successfully deployed!

📊 Dashboard:

@4e6
Copy link
Contributor Author

4e6 commented Dec 2, 2024

Repo settings should be updated to reflect the changes. In the branch protection rules the following required checks should be

removed:

  • Build Backend*
  • Engine (GraalVM CE)*
  • GUI build*
  • JVM Tests (GraalVM CE)*
  • Lint*
  • Native Rust tests*
  • Package New IDE*
  • Standard Library Tests*
  • Verify License Packages*

renamed:

  • GUI Checks Success or Skipped -> Required Checks

@4e6 4e6 marked this pull request as ready for review December 3, 2024 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-build-script Category: build script -ci CI: No changelog needed Do not require a changelog entry for this PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reduce CI workload by only running backend tests when engine or libs sources have changed
2 participants