Getting Started - autopkg/autopkg GitHub Wiki

A brief "getting started" tutorial

Some parts of this short tutorial assume you have a working Munki repo configured that you can mount from your admin machine. Munki isn't strictly required to use AutoPkg - for example, it can simply build packages. If you aren't using Munki, there are additional processors you can add on to work with Jamf Pro, Kandji, LANrev, Filewave, SCCM, BigFix, and more. But Munki is free and open source, so we'll use it for this demonstration.

Installation and Configuration On macOS

AutoPkg ships as an installer package. Also install Git so you can install and update community recipes.

Run AutoPkg on the most recent version of macOS when you can. Basic features still work on macOS 10.11 and newer.

Install AutoPkg

Install the latest pkg release. This also installs and loads a LaunchDaemon that AutoPkg's packaging component uses. The LaunchDaemon lets AutoPkg build packages without requiring root privileges. Note that the pkg installer is unsigned, so if you double-click the pkg in the Finder, you see a message that it can't be opened. Here is the message as it appears in macOS Sonoma and macOS Sequoia respectively:

The most reliable way to avoid this is to run the Installer app via its command line interface (admin privileges are required): sudo /usr/sbin/installer -pkg /path/to/autopkg-#.#.#.pkg -target /.

As well, in macOS Sonoma and earlier, you may install AutoPkg from the Finder. Open the pkg from the contextual menu (i.e., control-click or right-click on the AutoPkg pkg installer and select Open from the menu that appears).

If successful, macOS asks you to confirm you want to open the pkg by clicking the Open button. This lets the installation of AutoPkg proceed.

Install Git

Git is used by AutoPkg to add new community recipe repos, and to keep them up to date. One way to install Git is to install the Xcode Command Line tools. You can prompt the system to install them simply by typing the git command, or xcode-select --install. If you have installed Xcode, you already have Git. Git is also available via the official Git installer package.

Optional: configure for use with Munki

If we're using Munki, we must also define the MUNKI_REPO preference as the path where the Munki repository is mounted:

defaults write com.github.autopkg MUNKI_REPO /path/to/munki_repo

Also, ensure the latest Munki tools are installed.

Install Some Recipes

autopkg repo-add recipes

You'll see something like:

Attempting git clone...
Cloning into '/Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes'...

Adding /Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes to RECIPE_SEARCH_DIRS...
Recipe search path is: (
    ".",
    "~/Library/AutoPkg/Recipes",
    "/Library/AutoPkg/Recipes",
    "/Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes"
)

Now look at what recipes are available:

autopkg list-recipes

You should see a list of available recipes:

Adium.munki
Adium.pkg
AdobeAIR.pkg
AdobeAcrobatPro9Update.munki
AdobeAcrobatProXUpdate.munki
AdobeAir.munki
AdobeFlashPlayer.munki
AdobeFlashPlayer.pkg

..and so on.

You can get info on a specific recipe:

autopkg info GoogleChrome.pkg
Description:         Downloads latest Google Chrome disk image and builds a package.
Munki import recipe: False
Has check phase:     True
Builds package:      True
Recipe file path:    /Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.pkg.recipe
Input values:

    "DOWNLOAD_URL" = "https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg";
    IDENTIFIER = "com.github.autopkg.pkg.googlechrome";
    NAME = GoogleChrome;

Running a recipe

In our first example we'll run autopkg with a full path to a recipe. Note the -v verbosity flag, which will print out some useful progress information:

autopkg run -v ~/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.pkg.recipe
Processing /Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.pkg.recipe...
WARNING: /Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.pkg.recipe is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
URLDownloader
URLDownloader: Storing new Last-Modified header: Sat, 20 Feb 2021 06:12:11 GMT
URLDownloader: Storing new ETag header: "870ab9"
URLDownloader: Downloaded /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/downloads/GoogleChrome.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/downloads/GoogleChrome.dmg
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification disabled...
CodeSignatureVerifier: /private/tmp/dmg.a65dzP/Google Chrome.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.a65dzP/Google Chrome.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.a65dzP/Google Chrome.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
AppDmgVersioner
AppDmgVersioner: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/downloads/GoogleChrome.dmg
AppDmgVersioner: BundleID: com.google.Chrome
AppDmgVersioner: Version: 88.0.4324.192
PkgRootCreator
PkgRootCreator: Created /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/GoogleChrome
PkgRootCreator: Created /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/GoogleChrome/Applications
Copier
Copier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/downloads/GoogleChrome.dmg
Copier: Copied /private/tmp/dmg.rrS4hS/Google Chrome.app to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/GoogleChrome/Applications/Google Chrome.app
PkgCreator
PkgCreator: Connecting
PkgCreator: Sending packaging request
PkgCreator: Disconnecting
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/receipts/GoogleChrome.pkg-receipt-20210228-125144.plist

The following new items were downloaded:
    Download Path
    -------------
    /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/downloads/GoogleChrome.dmg

The following packages were built:
    Identifier         Version        Pkg Path
    ----------         -------        --------
    com.google.Chrome  88.0.4324.192  /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.pkg.googlechrome/GoogleChrome-88.0.4324.192.pkg

Each line of status above is prefixed with a "processor", which is a list of tasks to perform in the recipe. The GoogleChrome.pkg recipe is fairly simple:

  1. URLDownloader downloads a file at a given URL, and also records available header information given by the web server.
  2. EndOfCheckPhase is used only to mark the place in the recipe that constitutes a "check" without doing any further processing. This is used when the --check option is given to autopkg.
  3. AppDmgVersioner peeks inside the disk image and extracts the BundleID and version from the application.
  4. PkgRootCreator creates a root directory in which to stage our new package's contents.
  5. Copier copies files from the disk image to the pkg root directory.
  6. PkgCreator sends a packaging request to the autopkgserver, which builds a package for us.

The verbosity level can be increased to expose more internal data.

Trust info warnings

You may also notice warnings about missing trust info. Here's one from the example run above:

WARNING: /Users/yourusername/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.pkg.recipe is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...

Those warnings are only warnings and won't stop the AutoPkg recipe from running. That said, it is more secure to make a recipe override and update trust info for recipes. More details at AutoPkg and recipe parent trust info
If you want to silence those warnings now, you can record trust info for the GoogleChrome.pkg recipe by running autopkg make-override GoogleChrome.pkg -- but please read more about overrides and parent trust info later.

Running a Recipe By Name

While you can provide a full path to a recipe to run it, you can also just use the recipe name that appears in the output of autopkg list-recipes, which is a more convenient way to specify a recipe to run. This time, let's run a Munki recipe.

autopkg run -v GoogleChrome.munki
Processing GoogleChrome.munki...
WARNING: GoogleChrome.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
URLDownloader
URLDownloader: Storing new Last-Modified header: Sat, 20 Feb 2021 06:12:11 GMT
URLDownloader: Storing new ETag header: "870ab9"
URLDownloader: Downloaded /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/downloads/GoogleChrome.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/downloads/GoogleChrome.dmg
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification disabled...
CodeSignatureVerifier: /private/tmp/dmg.5fYvik/Google Chrome.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.5fYvik/Google Chrome.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.5fYvik/Google Chrome.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Copied pkginfo to: /Users/Shared/munki_repo/pkgsinfo/apps/GoogleChrome-88.0.4324.192.plist
MunkiImporter:            pkg to: /Users/Shared/munki_repo/pkgs/apps/GoogleChrome-88.0.4324.192.dmg
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/receipts/GoogleChrome-receipt-20210228-125436.plist

The following new items were downloaded:
        Download Path
        -------------
        /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/downloads/GoogleChrome.dmg

    The following new items were imported into Munki:
        Name          Version        Catalogs  Pkginfo Path                           Pkg Repo Path                        Icon Repo Path
        ----          -------        --------  ------------                           -------------                        --------------
        GoogleChrome  88.0.4324.192  testing   apps/GoogleChrome-88.0.4324.192.plist  apps/GoogleChrome-88.0.4324.192.dmg

This recipe does a few things differently from the GoogleChrome.pkg recipe. Since Munki doesn't need Chrome to be repackaged, this recipe simply downloads the latest disk image and imports it into Munki. It does not, however, run makecatalogs (which, if you manage a Munki repo, you know is a very important step!) For now, we'll do that manually:

/usr/local/munki/makecatalogs

Later we'll see how we can automate this step as well.

Repeated runs and idempotence

Now, run the same command again: autopkg run -v GoogleChrome.munki

autopkg run -v GoogleChrome.munki
Processing GoogleChrome.munki...
WARNING: GoogleChrome.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/downloads/GoogleChrome.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/downloads/GoogleChrome.dmg
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification disabled...
CodeSignatureVerifier: /private/tmp/dmg.PczqqM/Google Chrome.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.PczqqM/Google Chrome.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.PczqqM/Google Chrome.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Item GoogleChrome.dmg already exists in the munki repo as pkgs/apps/GoogleChrome-88.0.4324.192.dmg.
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.google-chrome/receipts/GoogleChrome-receipt-20210228-125856.plist

Nothing downloaded, packaged or imported.

(If you don't see something similar to the above, you probably didn't run makecatalogs as directed above!)

Both the URLDownloader and MunkiImporter processors contain internal logic to be able to determine whether their task has already been completed, and that they don't need to re-download or re-import the items. To verify that this is the case, try the following:

  1. Delete the newly-imported GoogleChrome pkginfo plist (and if you'd like, the dmg), run makecatalogs, and re-run autopkg run -v GoogleChrome.munki. It should verify that the cached item is unchanged, but that it is missing from the Munki repo, and import it.
  2. Delete the cached item found in the ~/Library/AutoPkg/Cache directory, and re-run autopkg run -v GoogleChrome.munki. It should re-cache the file, and as long as the version in the Munki repo matches, it should not re-import.
  3. Repeat 2., but give the --check option to autopkg. This causes it to re-cache the file and report the download, but not proceed past the EndOfCheckPhase processor.

Note: The MunkiImporter processor also supports an input variable called force_munkiimport that forces an import if it's set (to anything). This might be useful in testing modifications to recipes. This can be set temporarily using the -k/--key option, as in the example below. For info on this override method see the Recipe Overrides documentation.

autopkg run -k force_munkiimport=yes Recipe

Running multiple recipes

AutoPkg can run more than one recipe in a given session.

One of the recipes available in the autopkg/recipes recipe repo is "MakeCatalogs.munki". It does what you'd expect, but its behavior is more subtle than just running makecatalogs. By default, it checks the results of any recipes that were run in the same session and only does a makecatalogs if something new was imported into the Munki repo. So running this recipe by itself is generally not very useful:

autopkg run -v MakeCatalogs.munki
Processing MakeCatalogs.munki...
WARNING: MakeCatalogs.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
MakeCatalogsProcessor
MakeCatalogsProcessor: No need to rebuild catalogs.
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.makecatalogs/receipts/MakeCatalogs-receipt-20210228-130125.plist

Nothing downloaded, packaged or imported.

But if you add this recipe to the end of a run of other recipes that do import something, it does the right thing:

autopkg run -v Firefox.munki Thunderbird.munki MakeCatalogs.munki
Processing Firefox.munki...
MozillaURLProvider
MozillaURLProvider: Found URL https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/downloads/Firefox.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/downloads/Firefox.dmg
CodeSignatureVerifier: Using path '/private/tmp/dmg.DVKWrS/Firefox.app' matched from globbed '/private/tmp/dmg.DVKWrS/Firefox*.app'.
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification not defined. Using codesign defaults...
CodeSignatureVerifier: /private/tmp/dmg.DVKWrS/Firefox.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.DVKWrS/Firefox.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.DVKWrS/Firefox.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Copied pkginfo to: /Users/Shared/munki_repo/pkgsinfo/apps/firefox/Firefox-86.0.plist
MunkiImporter:            pkg to: /Users/Shared/munki_repo/pkgs/apps/firefox/Firefox-86.0.dmg
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/receipts/Firefox-receipt-20210228-130439.plist
Processing Thunderbird.munki...
WARNING: Thunderbird.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
MozillaURLProvider
MozillaURLProvider: Found URL https://download.mozilla.org/?product=thunderbird-latest-ssl&os=osx&lang=en-US
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/downloads/Thunderbird.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/downloads/Thunderbird.dmg
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification not defined. Using codesign defaults...
CodeSignatureVerifier: /private/tmp/dmg.spicFe/Thunderbird.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.spicFe/Thunderbird.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.spicFe/Thunderbird.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Copied pkginfo to: /Users/Shared/munki_repo/pkgsinfo/apps/thunderbird/Thunderbird-78.8.0.plist
MunkiImporter:            pkg to: /Users/Shared/munki_repo/pkgs/apps/thunderbird/Thunderbird-78.8.0.dmg
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/receipts/Thunderbird-receipt-20210228-130457.plist
Processing MakeCatalogs.munki...
WARNING: MakeCatalogs.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
MakeCatalogsProcessor
MakeCatalogsProcessor: Munki catalogs rebuilt!
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.makecatalogs/receipts/MakeCatalogs-receipt-20210228-130500.plist

The following new items were imported into Munki:
    Name         Version  Catalogs  Pkginfo Path                               Pkg Repo Path                            Icon Repo Path
    ----         -------  --------  ------------                               -------------                            --------------
    Firefox      86.0     testing   apps/firefox/Firefox-86.0.plist            apps/firefox/Firefox-86.0.dmg
    Thunderbird  78.8.0   testing   apps/thunderbird/Thunderbird-78.8.0.plist  apps/thunderbird/Thunderbird-78.8.0.dmg

You can see it downloaded and imported Firefox, then Thunderbird, then rebuilt the Munki catalogs. If we run these recipes again, we see it skips the tasks that are not needed:

autopkg run -v Firefox.munki Thunderbird.munki MakeCatalogs.munki
Processing Firefox.munki...
MozillaURLProvider
MozillaURLProvider: Found URL https://download.mozilla.org/?product=firefox-latest-ssl&os=osx&lang=en-US
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/downloads/Firefox.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/downloads/Firefox.dmg
CodeSignatureVerifier: Using path '/private/tmp/dmg.3hJzxP/Firefox.app' matched from globbed '/private/tmp/dmg.3hJzxP/Firefox*.app'.
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification not defined. Using codesign defaults...
CodeSignatureVerifier: /private/tmp/dmg.3hJzxP/Firefox.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.3hJzxP/Firefox.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.3hJzxP/Firefox.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Item Firefox.dmg already exists in the munki repo as pkgs/apps/firefox/Firefox-86.0.dmg.
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.firefox-rc-en_US/receipts/Firefox-receipt-20210228-130655.plist
Processing Thunderbird.munki...
WARNING: Thunderbird.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
MozillaURLProvider
MozillaURLProvider: Found URL https://download.mozilla.org/?product=thunderbird-latest-ssl&os=osx&lang=en-US
URLDownloader
URLDownloader: Item at URL is unchanged.
URLDownloader: Using existing /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/downloads/Thunderbird.dmg
EndOfCheckPhase
CodeSignatureVerifier
CodeSignatureVerifier: Mounted disk image /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/downloads/Thunderbird.dmg
CodeSignatureVerifier: Verifying code signature...
CodeSignatureVerifier: Deep verification enabled...
CodeSignatureVerifier: Strict verification not defined. Using codesign defaults...
CodeSignatureVerifier: /private/tmp/dmg.9lZgtt/Thunderbird.app: valid on disk
CodeSignatureVerifier: /private/tmp/dmg.9lZgtt/Thunderbird.app: satisfies its Designated Requirement
CodeSignatureVerifier: /private/tmp/dmg.9lZgtt/Thunderbird.app: explicit requirement satisfied
CodeSignatureVerifier: Signature is valid
MunkiImporter
MunkiImporter: Using repo lib: AutoPkgLib
MunkiImporter:         plugin: FileRepo
MunkiImporter:           repo: /Users/Shared/munki_repo
MunkiImporter: Item Thunderbird.dmg already exists in the munki repo as pkgs/apps/thunderbird/Thunderbird-78.8.0.dmg.
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.thunderbird/receipts/Thunderbird-receipt-20210228-130713.plist
Processing MakeCatalogs.munki...
WARNING: MakeCatalogs.munki is missing trust info and FAIL_RECIPES_WITHOUT_TRUST_INFO is not set. Proceeding...
MakeCatalogsProcessor
MakeCatalogsProcessor: No need to rebuild catalogs.
Receipt written to /Users/yourusername/Library/AutoPkg/Cache/com.github.autopkg.munki.makecatalogs/receipts/MakeCatalogs-receipt-20210228-130715.plist

Nothing downloaded, packaged or imported.

This behavior keeps AutoPkg from re-importing the same items over and over into the Munki repo and from running makecatalogs unnecessarily.

You can also run a list of recipes at once by using the --recipe-list parameter, and giving the path to a text file which contains a single recipe on each line:

autopkg run -v --recipe-list Recipes.txt

A valid text file would be:

Firefox.munki
Thunderbird.munki
MakeCatalogs.munki

What's next?

Recipes include defaults for their input variables, but it's generally assumed that any recipe used in production will need to have some things overridden. For example, no two Munki repos follow exactly the same directory structure, so Munki recipes will likely want to at least override the destination subdirectory for the pkg/pkginfo files. Visit the Recipe Overrides page to learn more.