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