diff options
Diffstat (limited to '.github/workflows/json4cpp-amalgam.yml')
| -rw-r--r-- | .github/workflows/json4cpp-amalgam.yml | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/.github/workflows/json4cpp-amalgam.yml b/.github/workflows/json4cpp-amalgam.yml new file mode 100644 index 0000000000..c25550487c --- /dev/null +++ b/.github/workflows/json4cpp-amalgam.yml @@ -0,0 +1,71 @@ +name: "json4cpp: Check amalgamation" + +on: + pull_request: + paths: + - 'json4cpp/**' + +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 }}/json4cpp + INCLUDE_DIR: ${{ github.workspace }}/json4cpp/single_include/nlohmann + TOOL_DIR: ${{ github.workspace }}/json4cpp/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: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Install astyle + working-directory: json4cpp + run: | + python3 -mvenv venv + venv/bin/pip3 install -r tools/astyle/requirements.txt + + - name: Check amalgamation + working-directory: json4cpp + run: | + 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 }}/json4cpp/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 }}/json4cpp/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 . -name '*.orig' -exec false {} \+ |
