diff --git a/products/tools/cli/shopware-account-commands/releasing-extension-to-shopware-store.md b/products/tools/cli/shopware-account-commands/releasing-extension-to-shopware-store.md index f617fde6c..10b0327a4 100644 --- a/products/tools/cli/shopware-account-commands/releasing-extension-to-shopware-store.md +++ b/products/tools/cli/shopware-account-commands/releasing-extension-to-shopware-store.md @@ -1,22 +1,22 @@ --- nav: - title: Releasing automated extension to Shopware Store + title: Automatically Release an Extension to the Shopware Store position: 2 --- -# Releasing automated extension to Shopware Store +# Automatically Release an Extension to the Shopware Store ## Prerequisites -- You are logged into the Shopware Store. Checkout the [Authentication](./authentication.md) guide for more information. -- You have a zip file of your extensions with all assets. Checkout the [Creating a zip](../extension-commands/build.md) guide for more information. -- The zip file contains a `CHANGELOG*.md` file with a Changelog entry for the new version. Having a German changelog is optional. -- You have validated the zip file with `shopware-cli extension validate `. See [Validating the zip](../validation.md) for more information. +- You are logged into the Shopware Store. Check out the [Authentication guide](./authentication.md) for more information. +- You have a zip file of your extension with all assets. Check out the [Building Extensions and Creating Archives guide](../extension-commands/build.md) for more information. +- The zip file contains a `CHANGELOG*.md` file with a changelog entry for the new version. Having a German changelog is optional. +- You have validated the zip file with `shopware-cli extension validate `. See the [Validation guide](../validation.md) for more information. ## Releasing the extension -To release the extension to the Shopware Store, upload the ZIP file using the `shopware-cli account producer extension upload` command. This is primarily designed for CI/CD pipelines to automate extension releases: +To release the extension to the Shopware Store, upload the zip file using the `shopware-cli account producer extension upload` command. This is primarily designed for CI/CD pipelines to automate extension releases: ```bash shopware-cli account producer extension upload @@ -24,12 +24,42 @@ shopware-cli account producer extension upload The upload process: -1. Checks for existing version: Verifies no extension with the same version already exists in the store -2. Uploads the package: Sends your ZIP file to the Shopware Store -3. Determines compatibility: Uses the Composer constraint from `composer.json` or `manifest.xml` -4. Waits for code review: The command automatically waits for the Store's automatic code review to complete (may take several minutes) -5. Reports results: Shows whether the code review passed or failed +1. Reads name and version: Both are taken from the zip file, so the extension must already exist in your producer account +2. Creates or reuses the version: Creates a new binary for that version, or updates the existing binary if that version was already uploaded and is not published yet +3. Pushes metadata: Sends the changelog entries and the list of compatible Shopware versions, derived from the Composer constraint in `composer.json` or `manifest.xml` +4. Uploads the package: Sends your zip file to the Shopware Store +5. Triggers the automatic code review and waits for its result (may take several minutes) +6. Reports results: Shows whether the code review passed, passed with warnings, or failed -If the code review fails, fix the issues and upload again. You can skip waiting for the review result with the `--skip-for-review-result` option if needed for CI/CD workflows that handle results separately. +If the code review fails, the command exits with an error. Fix the issues and upload again. -This workflow means you don't need to use the Shopware Store Admin UI at all—your CI/CD pipeline can handle the entire release process automatically. +If a version is already published in the Store, its binary can no longer be replaced. The command detects this, logs a message indicating the binary/version is already published and skips the upload, and exits successfully. Upload a new version instead. + +## What happens after the upload + +This workflow does not require a separate CLI release, publish, or approve step. The `upload` command submits the extension version, triggers the automatic code review, and waits for its result by default, unless waiting is skipped with `--skip-for-review-result`. + +```bash +shopware-cli account producer extension release --version +``` + +After the automatic review completes, check the version status in your Shopware Account to see whether any further approval or publication steps remain. + +Two things are worth keeping in mind: + +- A first submission requires additional review. A brand-new extension also goes through Shopware's functional test and manual code review before it appears in the Store. See [Shopware Store Review and Quality guide](../../../../guides/development/testing/store/index.md). +- The automatic review is not the full Store review. Passing the automatic code review does not guarantee final Store approval. See the [Validation guide](../validation.md) for what the automated checks do and do not cover. + +You can verify the state at any time in your Shopware Account under the extension's version overview, which shows the version status, the analyses that ran (basic extension analysis, code quality analysis), and the most recent review result. + +## Waiting for the review result in CI + +By default, the command waits 10 seconds and then polls the review result up to 10 times with a 15-second interval (roughly two and a half minutes in total). If the review has not finished by then, the command logs `Skipping waiting for code review result as it took too long` and exits successfully. A green pipeline does not by itself prove that the review passed. Check the result in the Account, or handle the review result separately in your CI/CD workflow. + +Use `--skip-for-review-result` to return immediately after triggering the review, for pipelines that report the outcome separately: + +```bash +shopware-cli account producer extension upload --skip-for-review-result +``` + +This workflow lets you automate uploading an extension version and triggering its automatic code review from your CI/CD pipeline. Check the version status in your Shopware Account for any remaining review or publication steps.