AcuOps Installation Guide¶
Prerequisites¶
- GitHub account with Actions enabled
- Acumatica instance (2022 R2 or later, cloud or on-premises)
- API user in Acumatica with access to the Customization API
- GitHub CLI (
gh) — recommended for setting secrets
Optional¶
yq— YAML processor (scripts degrade gracefully without it)- Python 3.10+ — for
validate-project.pyanddeploy.py - PyYAML — for Python config loading (
pip install pyyaml)
Setup Steps¶
1. Create Your Repository¶
Click "Use this template" on the AcuOps GitHub repo, or:
gh repo create my-acumatica-cicd --template studio-b-ai/acuops-pipeline --private
cd my-acumatica-cicd
2. Run the Setup Wizard¶
This generates acuops.yaml and prints the GitHub Secret commands.
3. Set GitHub Secrets¶
# Production credentials
gh secret set ACUMATICA_PROD_URL --body "https://your-instance.acumatica.com"
gh secret set ACUMATICA_PROD_USERNAME --body "api-bot"
gh secret set ACUMATICA_PROD_PASSWORD --body "your-password"
gh secret set ACUMATICA_PROD_TENANT --body "YourTenant"
# Staging (optional — falls back to production)
gh secret set ACUMATICA_STG_URL --body "https://your-staging.acumatica.com"
gh secret set ACUMATICA_STG_USERNAME --body "api-bot"
gh secret set ACUMATICA_STG_PASSWORD --body "your-password"
gh secret set ACUMATICA_STG_TENANT --body "StagingTenant"
# Slack notifications (optional)
gh secret set SLACK_WEBHOOK_URL --body "https://hooks.slack.com/services/..."
4. Set GitHub Variables¶
gh variable set CUSTOMIZATION_PROJECT_NAME --body "MyCustomization"
gh variable set ALSO_PUBLISH_PROJECTS --body "VARPackage,ShopifyConnector"
5. Add Your Customization Project¶
Export from Acumatica:
1. Go to SM204505 (Customization Projects)
2. Select your project
3. Source Control → Save Project to Folder (or Export Project to File)
4. Copy the exported project.xml into Customization/_project/
Or start from an example:
6. Push and Deploy¶
The pipeline runs automatically.
Acumatica API User Setup¶
Create a dedicated API user for CI/CD:
- Go to SM201010 (Users)
- Create user
api-cicd(or similar) - Assign role: Customization Administrator (minimum)
- Set a strong password
The user needs access to:
- /entity/auth/login and /entity/auth/logout
- /CustomizationApi/Import
- /CustomizationApi/publishBegin and /publishEnd
- /CustomizationApi/getProject (for backup)
Verifying the Installation¶
After pushing, check the Actions tab in GitHub. You should see:
- Build — Validates
project.xmland creates.zippackage - Backup — Downloads current published package (if enabled)
- Deploy — Uploads and publishes to Acumatica