From 24f031e1536894fc41d87ff884d19612c52f03fc Mon Sep 17 00:00:00 2001 From: Zac Spitzer Date: Mon, 24 Jun 2024 19:24:05 +0200 Subject: [PATCH] add default-cfconfig test --- .github/workflows/default-cfconfig.yml | 61 ++++++++++++++++++++ custom/default-cfconfig/.CFConfig-empty.json | 1 + custom/default-cfconfig/compareDefault.cfm | 18 ++++++ custom/default-cfconfig/saveDefault.cfm | 4 ++ 4 files changed, 84 insertions(+) create mode 100644 .github/workflows/default-cfconfig.yml create mode 100644 custom/default-cfconfig/.CFConfig-empty.json create mode 100644 custom/default-cfconfig/compareDefault.cfm create mode 100644 custom/default-cfconfig/saveDefault.cfm diff --git a/.github/workflows/default-cfconfig.yml b/.github/workflows/default-cfconfig.yml new file mode 100644 index 0000000..897271e --- /dev/null +++ b/.github/workflows/default-cfconfig.yml @@ -0,0 +1,61 @@ +name: Check Default .CFConfig + +on: + workflow_dispatch: + inputs: + compile: + required: false + default: false + type: boolean + workflow_call: + +jobs: + tests: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + luceeVersion: + [ + 6.0/snapshot/jar, + 6.1/snapshot/jar, + 6.1.0/snapshot/jar, + 6.2/snapshot/jar, + ] + javaVersion: [ 11 ] + env: + luceeVersionQuery: ${{ matrix.luceeVersion }} + compile: ${{ github.event.inputs.compile }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up JDK ${{matrix.javaVersion}} + uses: actions/setup-java@v4 + with: + java-version: ${{matrix.javaVersion}} + distribution: "temurin" + - name: Cache Maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: maven-cache + - name: Cache Lucee files + uses: actions/cache@v4 + with: + path: /home/runner/work/_actions/lucee/script-runner/main/lucee-download-cache + key: lucee-downloads + - name: Save Default .CFConfig.json + uses: lucee/script-runner@main + with: + webroot: ${{ github.workspace }}/custom/default-cfconfig + execute: /saveDefault.cfm + luceeVersionQuery: ${{ matrix.luceeVersion }} + - name: Save Default .CFConfig.json + uses: lucee/script-runner@main + with: + webroot: ${{ github.workspace }}/custom/default-cfconfig + execute: /compareDefault.cfm + luceeVersionQuery: ${{ matrix.luceeVersion }} + env: + LUCEE_BASE_CONFIG: ${{ github.workspace }}/custom/default-cfconfig/.CFConfig-empty.json + diff --git a/custom/default-cfconfig/.CFConfig-empty.json b/custom/default-cfconfig/.CFConfig-empty.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/custom/default-cfconfig/.CFConfig-empty.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/custom/default-cfconfig/compareDefault.cfm b/custom/default-cfconfig/compareDefault.cfm new file mode 100644 index 0000000..046b965 --- /dev/null +++ b/custom/default-cfconfig/compareDefault.cfm @@ -0,0 +1,18 @@ + + default = fileRead( expandPath( "./.CFConfig-default.json" ) ).toJson(); + empty = fileRead( expandPath('{lucee-config}.CFConfig.json') ).toJson(); + + for ( cfc in default ){ + if (!structKeyExists( empty, cfg ) ){ + systemOutput("", true ); + systemOutput("#cfg# missing in empty .CFConfig.json", true ); + } else { + if ( empty[cfg].toJson() neq default[cfg].toJson() ){ + systemOutput("", true ); + systemOutput("#cfg# is different!", true ); + systemOutput("#chr(9)# empty : #empty[cfg].toJson()# ", true ); + systemOutput("#chr(9)# default: #default[cfg].toJson()# ", true ); + } + } + } + \ No newline at end of file diff --git a/custom/default-cfconfig/saveDefault.cfm b/custom/default-cfconfig/saveDefault.cfm new file mode 100644 index 0000000..4a95989 --- /dev/null +++ b/custom/default-cfconfig/saveDefault.cfm @@ -0,0 +1,4 @@ + + default = fileRead( expandPath('{lucee-config}.CFConfig.json') ); + fileWrite( expandPath("./.CFConfig-default.json"), default ) + \ No newline at end of file