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

Sandboxes: Continue partial publishing if some sandboxes fail to generate #26013

Conversation

JReinhold
Copy link
Contributor

@JReinhold JReinhold commented Feb 13, 2024

Closes #25922

What I did

This PR adds support for partial generation+publishing of sandboxes, meaning that if some of the sandboxes fail to generate, the rest will still finish and publish.

  • Refactor the generate script to continue successful sandboxes, and add better and more readable error logging. When run in CI, a summary table will show each sandbox and their result - one of "Pass", "Failed to execute before-script", "Failed to initialize Storybook" or "Failed with unknown error". Any error will also be logged as a GH Actions error annotation which has more info, however Actions have a limit of 10 annotations per job.
  • The publish script has been changed to not empty all sandbox directories before copying the generated ones over, but instead only delete the before-storybook and after-storybook directories where corresponding successful sandboxes are present.
  • Merged the two generate sandbox workflows into one for easier discoverability and maintainability. The downside of this is that when triggering the workflow manually for some reason you're now forced to trigger both main and next generation. The assumption is that it's a worthy trade off.

Checklist for Contributors

Testing

This is an example of a fully successful job: https://github.com/storybookjs/storybook/actions/runs/7885839554

And a job with (simulated errors): https://github.com/storybookjs/storybook/actions/runs/7883911413

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>

@JReinhold JReinhold linked an issue Feb 13, 2024 that may be closed by this pull request
@JReinhold JReinhold added build Internal-facing build tooling & test updates ci:normal labels Feb 13, 2024
@JReinhold JReinhold self-assigned this Feb 13, 2024
@JReinhold JReinhold requested a review from yannbf February 13, 2024 20:45
@JReinhold JReinhold marked this pull request as ready for review February 13, 2024 20:45
Copy link
Member

@yannbf yannbf left a comment

Choose a reason for hiding this comment

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

LGTM!

@JReinhold JReinhold merged commit 6a0c827 into next Mar 5, 2024
56 of 58 checks passed
@JReinhold JReinhold deleted the jeppe/25922-ci-generation-of-sandboxes-fail-sometimes-on-prereleases branch March 5, 2024 11:44
@github-actions github-actions bot mentioned this pull request Mar 5, 2024
17 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Internal-facing build tooling & test updates ci:normal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI: Generation of sandboxes fail sometimes on prereleases
2 participants