3 steps are needed:
- Package
- Upload
- Release
Package
This is the simplest step of all. Just run this one line and you get a ZIP file "package-<extension name>-<version>.zip" in your source code's root directory.
npx @adobe/reactor-packager
Upload
This step uploads your ZIP file to Adobe's server. You need to provide the ZIP file's name and some keys/secrets. You can get the keys/secrets from the relevant project that you had created in https://developer.adobe.com/console.
npx @adobe/reactor-uploader package-<extension name>-<version>.zip --private-key=path/to/your/private.key --org-id=<alphanumeric string>@AdobeOrg --tech-account-id=<something@techacct.adobe.com from Adobe IO> --api-key=<client key from Adobe IO> --client-secret=<client secret from Adobe IO>
This will upload to your Launch extension development property. This is different from your regular Launch property that you use for setting up your rules and data elements. The extension development property lets you ensure that your extension really works in Launch's UI.
If you run this command subsequently with the same extension-and-version packaged ZIP, previous uploaded packages will get overwritten automatically, so that there is only one ZIP package for that specific extension-and-version in Launch.
Release
This step releases your extension to the non-extension development property/properties. By default, your extension is released privately to your own organisation's properties only, so 3rd parties can't use your extension. (You have the option of making your extension publicly available via a form.)
npx @adobe/reactor-releaser --private-key=path/to/your/private.key --org-id=<alphanumeric string>@AdobeOrg --tech-account-id=<something@techacct.adobe.com from Adobe IO> --api-key=<client key from Adobe IO> --client-secret=<client secret from Adobe IO>
Even though no ZIP file name is specified here, Launch is able to associate your extension properly. You should get a prompt with the extension's name, version number and ID (if I remember correctly).
After you've released it, you can make use of your extension in any of your organisation's Launch properties now.