Deployment

This page captures the current deployment and package publishing flow that is already represented in the repository. It should be updated whenever the deploy process changes.

Python Package Build

The packaged CLI is defined under deploy/. From that directory:

python3 -m pip install --upgrade build
python3 -m build

This creates distribution artifacts in deploy/dist/.

Publish Package Artifacts

The existing repository documentation shows publishing the built package to S3:

aws --profile dev s3 sync ./dist/ s3://py-packages-dist/sls/

There is also an existing all-in-one command in deploy/README.md:

python3 -m build && python3 -m pip install --upgrade . && aws --profile dev s3 sync ./dist/ s3://py-packages-dist/sls/

Release Process

The current repo notes include a GitHub release step:

gh release create v<<<VERSION>>> --generate-notes --latest

Replace <<<VERSION>>> with the version defined in deploy/sls/version.py.

Container Build Notes

The repository root contains buildspec.yml, which currently builds and pushes a Docker image to:

838694328347.dkr.ecr.us-east-1.amazonaws.com/gen5-deploy:latest

That file is part of the current CI/CD behavior and should be kept in sync with any documented image build process.

CodeDeploy Notes

The repository root also contains appspec.yml. At the moment it deploys the deploy/ directory to /slservice and runs:

  • slim-deploy.sh
  • slim-config-cleanup.py

If that path or those hooks change, update both the deployment automation and this documentation together.

Environment Configuration

The deploy package includes environment-specific config files here:

  • deploy/configs/us-prod-config.yml
  • deploy/configs/us-staging-config.yml
  • deploy/configs/eu-prod-config.yml
  • deploy/configs/eu-staging-config.yml

Any deployment instructions should identify which config file is authoritative for the environment being changed.

Gaps To Fill In

This first pass documents the flow visible in the repository. It still needs project-specific operational details such as:

  • required AWS profiles and permissions
  • which deployment steps are human-run versus automated
  • rollback expectations
  • production approval requirements
  • post-deploy validation steps