Skip to content

env: Add Support for "afterStop" Lifecycle Script#64357

Open
jblz wants to merge 4 commits intoWordPress:trunkfrom
jblz:add/env-afterstop-lifecycle-script
Open

env: Add Support for "afterStop" Lifecycle Script#64357
jblz wants to merge 4 commits intoWordPress:trunkfrom
jblz:add/env-afterstop-lifecycle-script

Conversation

@jblz
Copy link
Copy Markdown
Contributor

@jblz jblz commented Aug 7, 2024

What?

The @wordpress/env Package already supports the following Lifecycle Scripts:

  • afterClean
  • afterDestroy
  • afterStart

This is currently documented at:

This PR adds an additional opportunity (afterStop) for users to invoke a script after the environment is stopped.

Why?

This script gives the ability to clean up resources that were spun up via the afterStart lifecycle script.

How?

Use the same mechanisms as the existing lifecycle scripts:

  • Attach the scripts argument in packages/env/lib/cli.js with the default of "true"
  • Pass that argument through to the stop script
  • If it's true, run any configured scripts in the top-level lifecycleScripts.afterStop portion of .wp-env.json

Testing Instructions

  • Create a .wp-env.json with contents:
    {
        "lifecycleScripts": {
          "afterClean": "echo 'All clean!' > /tmp/wpenv.log",
          "afterDestroy": "echo 'Destroyed!' > /tmp/wpenv.log",
          "afterStart": "echo 'WordPress is ready!' > /tmp/wpenv.log",
          "afterStop": "echo 'Goodbye!' > /tmp/wpenv.log"
        }
    }
    
  • In a dedicated terminal, run tail -F /tmp/wpenv.log
  • Run wp-env start
    • You should see a new log line: WordPress is ready!
  • Repeat with the clean, destroy, and stop subcommands.
    • You should see corresponding log lines for each.
  • Automated tests should pass in this PR

@github-actions
Copy link
Copy Markdown

github-actions bot commented Aug 7, 2024

Warning: Type of PR label mismatch

To merge this PR, it requires exactly 1 label indicating the type of PR. Other labels are optional and not being checked here.

  • Type-related labels to choose from: [Type] Automated Testing, [Type] Breaking Change, [Type] Bug, [Type] Build Tooling, [Type] Code Quality, [Type] Copy, [Type] Developer Documentation, [Type] Enhancement, [Type] Experimental, [Type] Feature, [Type] New API, [Type] Task, [Type] Technical Prototype, [Type] Performance, [Type] Project Management, [Type] Regression, [Type] Security, [Type] WP Core Ticket, Backport from WordPress Core.
  • Labels found: .

Read more about Type labels in Gutenberg. Don't worry if you don't have the required permissions to add labels; the PR reviewer should be able to help with the task.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Aug 7, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: jblz <jblz@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant