@hmcts/ccd-diff

4.7.2 • Public • Published

CCD Diff

Tool to diff CCD changes.

Usage

npm start [pathToBaseCCDJson] [pathToBranchCCDJson]
# or with npx
npx -q @hmcts/ccd-diff [pathToBaseCCDJson] [pathToBranchCCDJson]

Output

The only output format supported at the moment is markdown:

AuthorisationCaseField/APPLICANTTWO.json

CRUD CaseFieldID UserRole
-CRU
-applicant2ConfirmReceipt
-[APPLICANTTWO]
-CRU
-applicant2ContinueApplication
-[APPLICANTTWO]
+CRU
+-Applicant2PrayerFinancialOrdersChild
+[APPLICANTTWO]
-CRU 
+R

applicant2Address

[APPLICANTTWO]

-CRU 
+R

applicant2AgreedToReceiveEmails

[APPLICANTTWO]

AuthorisationCaseField/APPTWOSOLICITOR.json

CRUD CaseFieldID UserRole
-CRU
-applicant2ConfirmReceipt
-[APPTWOSOLICITOR]

Use on PRs

You can add a report to a PR with CCD changes by adding:

  report:
    runs-on: ubuntu-latest
    needs: [buildBranch, buildMaster]
    steps:
      - uses: actions/setup-node@v3
        with:
          node-version: 16
      - uses: actions/download-artifact@v3
        with:
          name: branch
          path: build/branch
      - uses: actions/download-artifact@v3
        with:
          name: master
          path: build/master
      - name: Generate report
        id: ccd-diff
        run: |
          REPORT="$(npx -q @hmcts/ccd-diff build/master build/branch)"
          REPORT="${REPORT//'%'/'%25'}"
          REPORT="${REPORT//$'\n'/'%0A'}"
          REPORT="${REPORT//$'\r'/'%0D'}"
          echo $REPORT
          echo "::set-output name=content::$REPORT"
      - name: Display
        run: |
          echo "${{ steps.ccd-diff.outputs.content }}"
      - name: Add report
        uses: thollander/actions-comment-pull-request@v1
        with:
          message: |
            # CCD diff report ${{ steps.ccd-diff.outputs.content }}
          comment_includes: CCD diff report
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

You will need to add two steps to upload the CCD JSON definition artifacts to compare. For a CCD config generator based config this would look like:

  setup:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-java@v3
        with:
          distribution: corretto
          java-version: 17

  buildBranch:
    runs-on: ubuntu-latest
    needs: [setup]
    steps:
      - uses: actions/checkout@v3
        with:
          path: build/branch
      - name: Build
        run: ./gradlew generateCCDConfig
        working-directory: build/branch
      - uses: actions/upload-artifact@v3
        with:
          name: branch
          path: build/branch/build/definitions/NFD

  buildMaster:
    runs-on: ubuntu-latest
    needs: [setup]
    steps:
      - uses: actions/checkout@v3
        with:
          ref: master
          path: build/master
      - name: Build
        run: ./gradlew generateCCDConfig
        working-directory: build/master
      - uses: actions/upload-artifact@v3
        with:
          name: master
          path: build/master/build/definitions/NFD

For a plain JSON repository this would look like:

  buildBranch:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          path: build/branch
      - uses: actions/upload-artifact@v3
        with:
          name: branch
          path: build/branch/definitions/divorce/json

  buildMaster:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          ref: master
          path: build/master
      - uses: actions/upload-artifact@v3
        with:
          name: master
          path: build/master/definitions/divorce/json

Readme

Keywords

none

Package Sidebar

Install

npm i @hmcts/ccd-diff

Weekly Downloads

103

Version

4.7.2

License

MIT

Unpacked Size

18.5 kB

Total Files

15

Last publish

Collaborators

  • bendiggle
  • ellie-harrison
  • adrianc
  • hemantt
  • adamsilver
  • trevorsaint
  • timja-hmcts
  • dharmendrak
  • robertparkinson
  • pragnesh
  • damdun
  • p.jar
  • sabah.irfan
  • jenkins-reform-hmcts
  • andrewwa-kainos
  • timja