Quickly run Lucee CFML applications headless (without a HTTP server) via the command line
Please report any issues, etc in the Lucee Issue Tracker
Default ant will run the sample/index.cfm file
You can specify:
- Lucee version -DluceeVersion=default6.0.3.1, (ie. 6.3.0.1, light-6.3.0.1, zero-6.3.0.1 )
- Lucee version by query -DluceeVersionQuery="5.4/stable/light( optional overrides luceeVersion, (version)/(stable/rc/snapshot)/(jar,light/zero) )
- Webroot -Dwebroot=(defaulttests/) on Windows, avoid a trailing \ as that is treated as an escape character causes script runner to fail
- CFML Script to run, -Dexecute=(default/index.cfm)
- run script via include or _internalRequest (which runs the Application.cfc if present, default ) -DexecuteScriptByInclude="true"
- any extra extensions -Dextensions=(default ``)
- manual extension install (*.lex) from a directory-DextensionDir=(default ``)
- compile all cfml under webroot -Dcompile="true"
- pass in a full .CFConfig.json file -DluceeCFConfig="/path/to/.CFConfig.json
- use a java debugger -Ddebugger="true"opens a java debugging port 5000, with suspend=y
- preCleanup -DpreCleanup="true"purges the Lucee working dir before starting
- postCleanup -DpostCleanup="true"purges the Lucee working dir after finishing
ant -DluceeVersion="6.0.0.95-SNAPSHOT" -Dwebroot="C:\work\lucee-docs" -Dexecute="import.cfm" -Dlucee.extensions=""
ant -DluceeVersion="6.0.0.95-SNAPSHOT" -DextensionDir="C:\work\lucee-extensions\extension-hibernate\dist"
If no webroot is specfied, you can run the provided debug script, to see which extensions are available and all the env / sys properties
ant -buildfile="C:\work\script-runner" -Dexecute="/debug.cfm"
ant -buildfile="C:\work\script-runner" -Dexecute="/debug.cfm" -DluceeVersion="light-6.0.0.95-SNAPSHOT" (light has no bundled extensions, zero has no extension or admin)
To use as a GitHub Action, to run the PDF tests after building the PDF Extension, just add the following YAML
    - name: Checkout Lucee
      uses: actions/checkout@v2
      with:
        repository: lucee/lucee
        path: lucee
    - name: Cache Maven packages
      uses: actions/cache@v3
      with:
        path: ~/.m2
        key: lucee-script-runner-maven-cache
    - name: Cache Lucee files
      uses: actions/cache@v3
      with:
        path: _actions/lucee/script-runner/main/lucee-download-cache
        key: lucee-downloads
    - name: Run Lucee Test Suite
      uses: lucee/script-runner@main
      with:
        webroot: ${{ github.workspace }}/lucee/test
        execute: /bootstrap-tests.cfm
        luceeVersion: ${{ env.luceeVersion }}
        luceeVersionQuery: 5.4/stable/light (optional, overrides luceeVersion )
        extensions: (optional list of extension guids to install)
        extensionDir: ${{ github.workspace }}/dist (for testing building an extension with CI)
        antFlags: -d or -v etc (optional, good for debugging any ant issues)
        compile: true (optional, compiles all the cfml under the webroot)
        luceeCFConfig: /path/to/.CFConfig.json pass in additional configuration
        debugger: true (optional) runs with java debugging enabled on port 5000
        preCleanup: true (purges Lucee working directory before starting)
        postCleanup: true (purges Lucee working directory after finishing)
      env:
        testLabels: pdf
        testAdditional: ${{ github.workspace }}/tests
https://github.com/lucee/extension-pdf/blob/master/.github/workflows/main.yml
This will do the following steps
- checkout a copy of the Lucee Code base
- install any extension(s) (*.lex) found in${{ github.workspace }}/dist
- run all tests with the label of "pdf"
- run any additional tests found in the /testsdirectory of the current repository
image: atlassian/default-image:3
pipelines:
  default:
    - step:
        name: Build and Test
        caches:
          - maven
        script:
          - ant -noinput -verbose -buildfile build.xml
        artifacts:
          - dist/**
    - step:
        name: Checkout Lucee Script-runner, Lucee and run tests
        script:
          - git clone https://github.com/lucee/script-runner
          - git clone https://github.com/lucee/lucee
          - export testLabels="PDF"
          - echo $testLabels
          - ant -buildfile script-runner/build.xml -DluceeVersion="light-6.0.0.152-SNAPSHOT" -Dwebroot="$BITBUCKET_CLONE_DIR/lucee/test" -DextensionDir="$BITBUCKET_CLONE_DIR/dist" -Dexecute="/bootstrap-tests.cfm" -DtestAdditional="$BITBUCKET_CLONE_DIR/tests"
