Compiler CLI
Compile .awf workflow designs into portable .awfc bundles
Overview
The Aurora Workflows Compiler CLI (Aurora.Workflows.Cli.Compiler) is a command-line tool that takes an .awf workflow definition file and produces a self-contained .awfc binary bundle. The bundle embeds all required assemblies so the workflow can be executed on any machine that has the CLI Runner installed.
The compiler targets .NET 8 (Windows). It wraps the ProjectContainerService.DirectCompile method from Aurora.Workflows.UI.Core.
Usage
Aurora.Workflows.Cli.Compiler.exe <inputFile> <outputFile>
| Argument | Description |
|---|---|
<inputFile> | Path to the .awf source file to compile. |
<outputFile> | Destination path for the compiled .awfc bundle. |
If only one argument or no arguments are provided, the compiler prints usage information and exits.
Example
Aurora.Workflows.Cli.Compiler.exe C:\Workflows\backup.awf C:\Deploy\backup.awfc
Sample console output:
Input: C:\Workflows\backup.awf
Compiling...
Workflow 'Daily Backup'-'3f2a…' compiled. 124800 byte(s) written.
Output Bundle (.awfc)
The .awfc file is a proprietary binary format identified by the magic header BWAURORAWF. It contains:
- The serialized workflow task graph (JSON).
- All task assemblies and their transitive dependencies.
- Metadata including the workflow name and ID.
The bundle is not human-readable and is not intended to be edited manually. Containers produced by the desktop application also embed the designer data, so they can be reopened and modified in the designer directly; bundles produced by the Compiler CLI must be regenerated from the .awf source after making changes.
Exit Codes
| Code | Meaning |
|---|---|
0 | Compilation succeeded. |
non-zero | An unhandled error occurred; details are printed to stdout. |
Integration in CI/CD
The compiler is a straightforward command-line process. It can be integrated into any build pipeline:
# PowerShell / GitHub Actions step example
- name: Compile workflow
run: |
./Aurora.Workflows.Cli.Compiler.exe ./src/workflows/daily-backup.awf ./artifacts/daily-backup.awfc