Package Exports
- ion-cicd
- ion-cicd/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ion-cicd) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ion-cicd
CLI toolkit for managing Infor ION components with Git-based version control and automated CI/CD pipelines.
Features
- Export - Download ION components (scripts, dataflows, mappings, etc.) to local files or GitHub
- Deploy - Push local components to ION with validation and dependency resolution
- Backup - Automated daily backups with Git history tracking
- Multi-environment - Support for TEST, TRAINING, and PRODUCTION environments
- Reusable Workflows - GitHub Actions workflows for automated CI/CD
- Validation - Pre-deployment checks for dependencies and conflicts
Supported Component Types
| Type | Description |
|---|---|
| Script | Python scripts with metadata |
| Library | Python packages/libraries |
| Mapping | Data transformation mappings |
| Document flow | Dataflow definitions |
| Connection point | API connection configurations |
| Workflow | Business process workflows |
| BOD schema | Custom BOD noun schemas |
| Object schema | Object schema definitions |
| File template | File format templates |
| Enterprise Connector | External system connectors |
| Activation policy | Workflow activation rules |
Installation
# Install from npm
npm install ion-cicd
# Or install globally
npm install -g ion-cicdFrom Source
git clone https://github.com/MikahDev/ion-cicd.git
cd ion-cicd
npm install
npm run build
npm linkQuick Start
1. Initialize a Project
Create a new directory for your ION components:
mkdir my-ion-project && cd my-ion-project
npm init -y
npm install ion-cicd2. Configure Environments
Create ion-cicd.config.json:
{
"version": "1.0",
"defaultEnvironment": "tst",
"environments": {
"tst": {
"ionapi": "./credentials/TST.ionapi",
"protected": false
},
"prd": {
"ionapi": "./credentials/PRD.ionapi",
"protected": true
}
},
"settings": {
"componentsPath": "./ion-components"
}
}3. Add Credentials
Place your .ionapi files in the credentials/ directory (git-ignored).
4. Export Components
# Export all components from TEST
npx ion-cicd --env tst export --all --local
# Export specific type
npx ion-cicd --env tst export --type Script --local5. Deploy Components
# Validate before deploying
npx ion-cicd --env tst validate
# Deploy to TEST
npx ion-cicd --env tst deploy
# Deploy specific component type
npx ion-cicd --env tst deploy --type ScriptCLI Commands
| Command | Description |
|---|---|
export |
Export components from ION to local/GitHub |
deploy |
Deploy local components to ION |
push |
Bulk deploy all local components |
validate |
Validate components before deployment |
sync |
Bi-directional sync between ION and Git |
refresh |
Copy components between environments |
rollback |
Revert to a previous Git commit state |
analyze |
Analyze component dependencies |
compare |
Compare components across environments |
Common Options
--env <environment> # Target environment (tst, trn, prd)
--type <type> # Component type filter
--dry-run # Preview without making changes
--ci # CI mode (non-interactive)
--auto-approve # Auto-approve scripts (TEST only)GitHub Actions Integration
Workflow Templates
Copy the workflow templates from templates/workflows/ to your project's .github/workflows/ directory:
backup.yml- Daily automated backup from Productiondeploy-test.yml- Deploy to TEST on pull requestdeploy-production.yml- Deploy to PRODUCTION on release
Setting Up Secrets
Encode your .ionapi files and add as GitHub secrets:
base64 -i credentials/TST.ionapi | pbcopy # Copy to clipboard (macOS)Add these secrets to your repository:
IONAPI_CONFIG_TSTIONAPI_CONFIG_TRNIONAPI_CONFIG_PRD
Project Templates
Starter templates are included in the templates/ directory:
templates/
├── package.json # Minimal project dependencies
├── ion-cicd.config.json # Environment configuration
├── env-mappings.json # Environment transformation rules
├── .gitignore # Git ignore patterns
└── workflows/ # GitHub Actions workflow templates
├── backup.yml
├── deploy-test.yml
└── deploy-production.ymlSecurity
- Protected Environments - Production deployments require CI/CD pipeline with approval gates
- Credential Safety -
.ionapifiles are never committed to Git - Pre-deployment Backup - Automatic snapshots before production changes
- Script Approval - Scripts deploy in DRAFT state by default (manual ION approval required)
Requirements
- Node.js >= 18.0.0
- Infor ION API credentials (
.ionapifile) - GitHub account (for CI/CD features)
Documentation
License
MIT