diff options
Diffstat (limited to 'json4cpp/.github/workflows/check_amalgamation.yml')
| -rw-r--r-- | json4cpp/.github/workflows/check_amalgamation.yml | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/json4cpp/.github/workflows/check_amalgamation.yml b/json4cpp/.github/workflows/check_amalgamation.yml new file mode 100644 index 0000000000..ed86f9a3ee --- /dev/null +++ b/json4cpp/.github/workflows/check_amalgamation.yml @@ -0,0 +1,76 @@ +name: "Check amalgamation" + +on: + pull_request: + +permissions: + contents: read + +jobs: + save: + runs-on: ubuntu-latest + steps: + - name: Harden Runner + uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 + with: + egress-policy: audit + + - name: Save PR number + run: | + mkdir -p ./pr + echo ${{ github.event.number }} > ./pr/number + echo ${{ github.event.pull_request.user.login }} > ./pr/author + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + with: + name: pr + path: pr/ + + check: + runs-on: ubuntu-latest + env: + MAIN_DIR: ${{ github.workspace }}/main + INCLUDE_DIR: ${{ github.workspace }}/main/single_include/nlohmann + TOOL_DIR: ${{ github.workspace }}/tools/tools/amalgamate + + steps: + - name: Harden Runner + uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0 + with: + egress-policy: audit + + - name: Checkout pull request + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: main + ref: ${{ github.event.pull_request.head.sha }} + + - name: Checkout tools + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + path: tools + ref: develop + + - name: Install astyle + run: | + python3 -mvenv venv + venv/bin/pip3 install -r $MAIN_DIR/tools/astyle/requirements.txt + + - name: Check amalgamation + run: | + cd $MAIN_DIR + + rm -fr $INCLUDE_DIR/json.hpp~ $INCLUDE_DIR/json_fwd.hpp~ + cp $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json.hpp~ + cp $INCLUDE_DIR/json_fwd.hpp $INCLUDE_DIR/json_fwd.hpp~ + + python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json.json -s . + python3 $TOOL_DIR/amalgamate.py -c $TOOL_DIR/config_json_fwd.json -s . + echo "Format (1)" + ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=none --quiet $INCLUDE_DIR/json.hpp $INCLUDE_DIR/json_fwd.hpp + + diff $INCLUDE_DIR/json.hpp~ $INCLUDE_DIR/json.hpp + diff $INCLUDE_DIR/json_fwd.hpp~ $INCLUDE_DIR/json_fwd.hpp + + ${{ github.workspace }}/venv/bin/astyle --project=tools/astyle/.astylerc --suffix=orig $(find docs/examples include tests -type f \( -name '*.hpp' -o -name '*.cpp' -o -name '*.cu' \) -not -path 'tests/thirdparty/*' -not -path 'tests/abi/include/nlohmann/*' | sort) + echo Check + find $MAIN_DIR -name '*.orig' -exec false {} \+ |
