Skip to content

BlueAcornInc/aio-commerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIO Commerce App Manifest

This repo is intended to work as a git submodule within other repos, such as our adobe-commerce sandbox or our Adobe Commerce Storefront repos as a convienent way for developers to run commerce apps in all the various local development scenerios. This repo contains a manifest file with all the commerce apps, as well as a bin/ directory full of shell scripts that can help ease jumping into projects.

App Statuses

App Production Staging PaaS
Shipstation Deploy to Prod Deploy to Stage Deploy to PaaS
Bazaarvoice Deploy to Prod Deploy to Stage
Yotpo Deploy to Prod Deploy to Stage
Store Locator Deploy to Prod Deploy to Stage

PaaS Sandbox

Environment Status Frontend Admin Project
Master Deploy Frontend Admin Console
Production (App Builder) Deploy Frontend Admin Console
Staging (Evergreen) Deploy Frontend Admin Console
Enablement (Training) Deploy Frontend Admin Console

SaaS Sandboxes

Manage SaaS Instances from Adobe Commerce Instances Panel

Environment Admin Production Staging Content Code
Evergreen Admin aem.live aem.page da.live github

Demo Environments

Environment Status Production Staging Code Content Notes
blueacornici.shop Build aem.live aem.page github da.live user: blueacorn pass: pass4blueacorn

Service Statuses

Service Status
apps.blueacorn.shop Deploy Jekyll site to Pages
Guides Trigger Docs Deployment

Bin Directory Tools

The bin/ directory contains several utility scripts to streamline AIO commerce app development. These tools are intended to be run from the devcontainer or codespace environment and are available in the PATH, so they can be invoked directly by their command name without the ./bin/ prefix:

aio-clone

Clones all commerce apps listed in the manifest file. Reads the manifest file and clones each repository into its designated directory.

Usage:

aio-clone

aio-deploy

Deploys an AIO app by running the complete deployment pipeline. This script:

  • Runs aio-peg to set up authentication and workspace context
  • Installs npm dependencies
  • Executes aio app deploy to deploy the application

Usage:

aio-deploy

aio-pack

Packages an AIO app and uploads it as a release asset to GitHub. This script:

  • Creates an app package using aio app pack
  • Determines the repository and latest git tag
  • Renames the package to include the directory name and tag
  • Uploads the package to the corresponding GitHub release

Requirements: Requires GITHUB_TOKEN environment variable to be set.

Usage:

aio-pack

aio-peg

Sets up Adobe I/O CLI authentication and workspace context. This script automates the Adobe I/O CLI setup process by:

  • Loading environment variables from .env file if present
  • Logging into Adobe I/O CLI
  • Selecting organization, project, and workspace using environment variables:
    • $AIO_ORGID - Adobe I/O Organization ID (set in workspace root .env file)
    • $AIO_PROJECT - Project name (set in app .env file)
    • $AIO_WORKSPACE - Workspace name (set in workspace root .env file as a personal workspace name to not clobber changes i.e firstlastname)
  • Running aio app use to set the current app context

This tool can be used in conjunction with .env variables to auto-select the org, project and workspace.

Usage:

aio-peg
aio-peg --help  # Show detailed usage information

Personal App Workspaces in App Builder Projects

We automate app deployments to production and staging workspaces, so these should not be used for local development. Each developer should create their own unique personal app workspace to not clobber their work. When selecting Apps in the Adobe Commerce Admin UI SDK, you can provide this personal workspace name.

Developers will manually have to go into the App Builder Developer Console and create this workspace within the project. Use aio app use to use an existing workspace, then when you aio app use to the new workspace you should be able to sync the configurations.

aio-release

A comprehensive release tool that automates the versioning and release process for AIO apps. This script:

  • Updates version numbers in package.json, extension-manifest.json, and blocks/package.json (if present)
  • Creates a git commit with the version changes
  • Creates a git tag for the release
  • Optionally pushes changes and tags to the remote repository

Features:

  • Validates semantic versioning format (x.y.z)
  • Supports dry-run mode to preview changes
  • Option to skip pushing to remote
  • Colorized output with emojis for better readability
  • Automatically finds project directories with required files

Usage:

aio-release 1.0.2                    # Release version 1.0.2
aio-release 1.0.2 --dry-run         # Preview what would be done
aio-release 1.0.2 --no-push         # Don't push to remote
aio-release --help                   # Show detailed usage information

github-npm-auth

Handles npm authentication for GitHub packages. Sets up npm login for scoped packages hosted on GitHub Package Registry.

Usage:

github-npm-auth

Manifest File

The manifest file is a simple text file that defines which commerce app repositories should be cloned and their target directory names. Each line contains a Git repository URL followed by the desired local directory name. This allows the aio-clone tool to automatically set up all required commerce apps in the correct structure.

We are currently considering migrating from this manifest-based approach to npm-based package management for better dependency resolution and version control.

About

Manifest and helpers for commerce apps

Resources

Stars

Watchers

Forks