mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-13 10:36:34 +02:00
CI: build single headers
This commit is contained in:
70
.github/workflows/ci.yml
vendored
70
.github/workflows/ci.yml
vendored
@ -335,7 +335,7 @@ jobs:
|
|||||||
- name: Upload HTML report
|
- name: Upload HTML report
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: coverage
|
name: Coverage report
|
||||||
path: coverage
|
path: coverage
|
||||||
- name: Upload to Coveralls
|
- name: Upload to Coveralls
|
||||||
uses: coverallsapp/github-action@master
|
uses: coverallsapp/github-action@master
|
||||||
@ -379,3 +379,71 @@ jobs:
|
|||||||
CXX: clang++-10
|
CXX: clang++-10
|
||||||
- name: Check
|
- name: Check
|
||||||
run: cmake --build . -- -k 0
|
run: cmake --build . -- -k 0
|
||||||
|
|
||||||
|
amalgamate-h:
|
||||||
|
needs: gcc
|
||||||
|
name: Amalgamate ArduinoJson.h
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Amalgamate
|
||||||
|
id: amalgamate
|
||||||
|
run: |
|
||||||
|
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
||||||
|
VERSION=${GITHUB_REF#refs/tags/}
|
||||||
|
else
|
||||||
|
VERSION=${GITHUB_SHA::7}
|
||||||
|
fi
|
||||||
|
INPUT=src/ArduinoJson.h
|
||||||
|
OUTPUT=ArduinoJson-$VERSION.h
|
||||||
|
extras/scripts/build-single-header.sh "$INPUT" "$OUTPUT"
|
||||||
|
echo ::set-output name=filename::${OUTPUT}
|
||||||
|
- name: Smoke test
|
||||||
|
run: |
|
||||||
|
g++ -x c++ - <<END
|
||||||
|
#include "${{ steps.amalgamate.outputs.filename }}"
|
||||||
|
int main() {
|
||||||
|
StaticJsonDocument<300> doc;
|
||||||
|
deserializeJson(doc, "{}");
|
||||||
|
}
|
||||||
|
END
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Single headers
|
||||||
|
path: ${{ steps.amalgamate.outputs.filename }}
|
||||||
|
|
||||||
|
amalgamate-hpp:
|
||||||
|
needs: gcc
|
||||||
|
name: Amalgamate ArduinoJson.hpp
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Amalgamate
|
||||||
|
id: amalgamate
|
||||||
|
run: |
|
||||||
|
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
||||||
|
VERSION=${GITHUB_REF#refs/tags/}
|
||||||
|
else
|
||||||
|
VERSION=${GITHUB_SHA::7}
|
||||||
|
fi
|
||||||
|
INPUT=src/ArduinoJson.hpp
|
||||||
|
OUTPUT=ArduinoJson-$VERSION.hpp
|
||||||
|
extras/scripts/build-single-header.sh "$INPUT" "$OUTPUT"
|
||||||
|
echo ::set-output name=filename::${OUTPUT}
|
||||||
|
- name: Smoke test
|
||||||
|
run: |
|
||||||
|
g++ -x c++ - <<END
|
||||||
|
#include "${{ steps.amalgamate.outputs.filename }}"
|
||||||
|
int main() {
|
||||||
|
ArduinoJson::StaticJsonDocument<300> doc;
|
||||||
|
deserializeJson(doc, "{}");
|
||||||
|
}
|
||||||
|
END
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Single headers
|
||||||
|
path: ${{ steps.amalgamate.outputs.filename }}
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
TAG=$(git describe)
|
|
||||||
RE_RELATIVE_INCLUDE='^#include[[:space:]]*"(.*)"'
|
RE_RELATIVE_INCLUDE='^#include[[:space:]]*"(.*)"'
|
||||||
RE_ABSOLUTE_INCLUDE='^#include[[:space:]]*<(ArduinoJson/.*)>'
|
RE_ABSOLUTE_INCLUDE='^#include[[:space:]]*<(ArduinoJson/.*)>'
|
||||||
RE_SYSTEM_INCLUDE='^#include[[:space:]]*<(.*)>'
|
RE_SYSTEM_INCLUDE='^#include[[:space:]]*<(.*)>'
|
||||||
@ -58,25 +57,8 @@ simplify_namespaces() {
|
|||||||
rm -f "$1.bak"
|
rm -f "$1.bak"
|
||||||
}
|
}
|
||||||
|
|
||||||
cd $(dirname $0)/../..
|
|
||||||
INCLUDED=()
|
INCLUDED=()
|
||||||
process src/ArduinoJson.h true > ../ArduinoJson-$TAG.h
|
INPUT=$1
|
||||||
simplify_namespaces ../ArduinoJson-$TAG.h
|
OUTPUT=$2
|
||||||
g++ -x c++ -c -o ../smoketest.o - <<END
|
process "$INPUT" true > "$OUTPUT"
|
||||||
#include "../ArduinoJson-$TAG.h"
|
simplify_namespaces "$OUTPUT"
|
||||||
int main() {
|
|
||||||
StaticJsonDocument<300> doc;
|
|
||||||
deserializeJson(doc, "{}");
|
|
||||||
}
|
|
||||||
END
|
|
||||||
|
|
||||||
INCLUDED=()
|
|
||||||
process src/ArduinoJson.hpp true > ../ArduinoJson-$TAG.hpp
|
|
||||||
simplify_namespaces ../ArduinoJson-$TAG.hpp
|
|
||||||
g++ -x c++ -c -o ../smoketest.o - <<END
|
|
||||||
#include "../ArduinoJson-$TAG.hpp"
|
|
||||||
int main() {
|
|
||||||
ArduinoJson::StaticJsonDocument<300> doc;
|
|
||||||
ArduinoJson::deserializeJson(doc, "{}");
|
|
||||||
}
|
|
||||||
END
|
|
||||||
|
Reference in New Issue
Block a user