diff --git a/ee/maintained-apps/README.md b/ee/maintained-apps/README.md index ab1f05a637..97409f9609 100644 --- a/ee/maintained-apps/README.md +++ b/ee/maintained-apps/README.md @@ -1,6 +1,6 @@ -# Fleet-maintained apps +# Fleet-maintained apps (FMA) -## Adding a new FMA +## Adding a new app 1. Decide on a source for the app's metadata. We currently support homebrew as a source for macOS apps. 2. Find that app's metadata. For homebrew, you can visit https://formulae.brew.sh/ and find the app there. @@ -66,3 +66,21 @@ These are command lines that will be run _before_ the generated uninstall script #### `post_uninstall_scripts` These are command lines that will be run _after_ the generated uninstall script is executed. + +### Testing + +Fleet tests every Fleet-maintained app. For new apps, start at step 1. For updates to existing apps, skip to step 4. + +1. When a pull request is opened in `inputs/`, the [#g-software Engineering Manager (EM)](https://fleetdm.com/handbook/company/product-groups#software-group) is automatically added as reviewer. +2. The EM is responsible for making sure that the `name` for the new app matches the name that shows up in Fleet's software inventory. If the name doesn't match or if the name is not user-friendly, the EM will bring it to #g-software design review. This way, when the app is added to Fleet, the app will be matched with the app that comes back in software inventory. +3. Then, the EM builds the app's `outputs/` on the same PR. At this time, @eashaw and a Product Designer are added to the PR. Eric adds the icon for [fleetdm.com/app-library](https://fleetdm.com/app-library). +4. The Product Designer is responsible for testing the app: +- If the app is a new app, add an icon for the app to the PR. App icons are located [here in the repository](https://github.com/fleetdm/fleet/tree/main/frontend/pages/SoftwarePage/components/icons). Run the [Docker publish GitHub action]() to add the tag to [Docker Hub](https://hub.docker.com/r/fleetdm/fleet/tags). +- Run the following `fleetctl preview` command and test the app: Does the icon look right? Does the app install? Does the app uninstall? Can you open the app once it's installed? + +``` +fleetctl preview --tag= --license-key=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJGbGVldCBEZXZpY2UgTWFuYWdlbWVudCBJbmMuIiwiZXhwIjoxNjQwOTk1MjAwLCJzdWIiOiJkZXZlbG9wbWVudCIsImRldmljZXMiOjEwMCwibm90ZSI6ImZvciBkZXZlbG9wbWVudCBvbmx5IiwidGllciI6ImJhc2ljIiwiaWF0IjoxNjIyNDI2NTg2fQ.WmZ0kG4seW3IrNvULCHUPBSfFdqj38A_eiXdV_DFunMHechjHbkwtfkf1J6JQJoDyqn8raXpgbdhafDwv3rmDw +``` + +5. If the tests fail, the PD sets the PR to draft and files a bug that links to the PR. +6. If the test is successful, the PD approves and merges the PR. For new apps, the PD opens a user story to test the new icon, adds it to the #g-software board (`:release` and `#g-software` labels), and assigns the EM. diff --git a/website/config/custom.js b/website/config/custom.js index 06ed54a378..c207ea4127 100644 --- a/website/config/custom.js +++ b/website/config/custom.js @@ -183,6 +183,10 @@ module.exports.custom = { // 🌐 GitHub issue templates '.github/ISSUE_TEMPLATE': 'sampfluger88', + // 💝 Fleet-maintained apps + 'ee/maintained-apps/inputs': 'mostlikelee', + 'ee/maintained-apps/outputs': 'eugkuo', + }, // FUTURE: Support DRIs for confidential and other repos (except see other note above about a consolidated way to do it, to reduce these 4-6 config keys into one)