summaryrefslogtreecommitdiff
path: root/.github/workflows/json4cpp-amalgam.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/json4cpp-amalgam.yml')
-rw-r--r--.github/workflows/json4cpp-amalgam.yml71
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 {} \+