| name: "Check amalgamation" |
| |
| on: |
| pull_request: |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| save: |
| runs-on: ubuntu-latest |
| steps: |
| - name: Harden Runner |
| uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.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@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.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@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 |
| with: |
| egress-policy: audit |
| |
| - name: Checkout pull request |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 |
| with: |
| path: main |
| ref: ${{ github.event.pull_request.head.sha }} |
| |
| - name: Checkout tools |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 |
| 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 {} \+ |