Simple Object Designer Documentation
Index

AL-Go Workflows

AL-Go for GitHub enables automated build and deployment pipelines for Business Central extensions. This page explains how to use AL-Go with SOD-generated code.

What is AL-Go

AL-Go is:

  • GitHub Actions workflows for BC development
  • Automated compilation and testing
  • Continuous integration/deployment (CI/CD)
  • Microsoft's recommended DevOps approach

Why Use AL-Go

Benefits

Benefit Description
Automated builds Code compiles automatically on push
Testing Run tests automatically
Quality gates Block merges if tests fail
Deployment Automate deployment to environments
Consistency Same build process every time

When to Use

Consider AL-Go when:

  • Multiple developers work on code
  • Need automated testing
  • Want deployment automation
  • Professional development workflow

Setting Up AL-Go

Repository Structure

AL-Go expects specific structure:

repository/
├── .github/
│   └── workflows/
│       └── (AL-Go workflow files)
├── .AL-Go/
│   └── settings.json
├── app.json
└── src/
    └── (AL source files)

Initial Setup

  1. Create repository with AL-Go template
  2. Or add AL-Go to existing repository
  3. Configure settings
  4. Push SOD code to repository

Using AL-Go Template

  1. Go to AL-Go for GitHub repository
  2. Use as template
  3. Configure for your needs
  4. Connect to SOD

Integrating SOD with AL-Go

Repository Configuration

Set SOD's GitHub integration to push to AL-Go repository:

  1. Configure GitHub settings in SOD
  2. Point to AL-Go enabled repository
  3. Set appropriate folder if needed

Subfolder Placement

If your AL-Go repository expects a specific layout:

  • Configure GitHub Subfolder in SOD settings
  • Ensure the path matches what AL-Go scans
  • Single-app mode: the source is committed directly inside the configured subfolder
  • Dual-app mode: SOD always commits under app1/ and app2/ inside the configured subfolder. Configure your AL-Go layout to expect those two subfolders.

Workflow Triggers

AL-Go workflows trigger on:

  • Push to main branch
  • Pull requests
  • Manual dispatch

Common AL-Go Workflows

CI (Continuous Integration)

Runs on every push:

  1. Download dependencies
  2. Compile extension
  3. Run tests (if configured)
  4. Report results

CD (Continuous Deployment)

Deploys to environments:

  1. After successful CI
  2. To configured environments
  3. With configured credentials

Pull Request Validation

On pull requests:

  1. Builds the code
  2. Runs tests
  3. Reports pass/fail
  4. Enables merge if passed

Configuring AL-Go Settings

settings.json

Basic configuration:

{
  "country": "us",
  "artifact": "latest",
  "companyName": "Your Company"
}

Environment Variables

Configure in GitHub:

  • Secrets for credentials
  • Variables for settings
  • Environment-specific values

Best Practices

Workflow Maintenance

  • Keep workflows updated
  • Review AL-Go releases
  • Test workflow changes

Branch Strategy

Recommended approach:

  • main for production code
  • Feature branches for development
  • Pull requests for review

Secret Management

  • Store credentials as GitHub secrets
  • Never commit credentials
  • Rotate regularly

SOD to AL-Go Workflow

Typical Flow

  1. Develop in SOD
  2. Push to GitHub
  3. Automated build runs
  4. Review build results
  5. Deploy if successful

When Issues Occur

If build fails:

  1. Review build logs
  2. Fix issues in SOD
  3. Push again
  4. Verify build passes

Transitioning to Full Development

When to Transition

Consider moving to full VS Code development when:

  • Complexity exceeds SOD capabilities
  • Need custom business logic
  • Multiple developers involved
  • Professional development required

Transition Process

  1. Push final SOD code to GitHub
  2. Set up full AL development environment
  3. Clone repository to VS Code
  4. Continue development traditionally
  5. SOD no longer used (or minimal use)

Limitations

SOD-Specific

  • SOD generates code, doesn't read it back
  • Manual changes in repo not reflected in SOD
  • One-way synchronization

AL-Go Learning Curve

  • Requires understanding of workflows
  • Configuration can be complex
  • Debugging may be challenging

Resources

Documentation

  • AL-Go for GitHub documentation
  • GitHub Actions documentation
  • Business Central DevOps guides

Community

  • GitHub Discussions
  • Business Central forums
  • Microsoft documentation