diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index e692448a..10e90ba9 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -3,8 +3,8 @@ on: release: types: [created, prereleased, published] workflow_dispatch: null - pull_request: null - + push: null + jobs: unittest: runs-on: ubuntu-latest @@ -20,6 +20,12 @@ jobs: - name: prepare directory working-directory: ./tests run: mkdir -p build + + - uses: actions/cache@v3 + with: + path: | + ./tests/build/_deps/ + key: cmake-deps - name: cmake prepareBuild working-directory: ./tests/build @@ -34,10 +40,8 @@ jobs: run: ctest -V - deploy: + build: needs: unittest - permissions: - contents: write strategy: fail-fast: false matrix: @@ -66,7 +70,13 @@ jobs: uses: actions/checkout@v3 with: submodules: true + fetch-depth: 0 + - name: Extract branch name + shell: bash + run: echo "gh_branch_name=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV + id: extract_branch + - uses: actions/cache@v3 with: path: | @@ -85,61 +95,47 @@ jobs: run: | export COMPILE_OUTPUT=$(pio run -e ${{ matrix.envName }} ) echo "$COMPILE_OUTPUT" - echo "fileext=$(test -f .pio/build/${{ matrix.envName }}/SIGNALDuino*.bin && echo "bin" || echo "hex")" >> $GITHUB_OUTPUT + FILEEXT=$(find .pio/build/${{ matrix.envName }} -maxdepth 1 \( -name 'SIGNALduino*.bin' -o -name 'SIGNALduino*.hex' \) | while read file; do echo "${file##*.}"; done) + echo "Extension: $FILEEXT" + echo "FILEEXT=$(echo $FILEEXT | tr -d '\n')" >> $GITHUB_OUTPUT echo "SKETCHSIZE=$(echo "$COMPILE_OUTPUT" | grep -Po "(^Flash: ).*")" >> $GITHUB_OUTPUT echo "GLOBALRAMUSAGE=$(echo "$COMPILE_OUTPUT" | grep -Po "(^RAM: ).*")" >> $GITHUB_OUTPUT - - - name: Get flash and ram usage - id: compile_sizes + + - name: Create Job Summary run: | - echo ${{ steps.compile_sketch.outputs.SKETCHSIZE }} - echo ${{ steps.compile_sketch.outputs.GLOBALRAMUSAGE }} + echo "### Size report for commit: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY + echo "| ENV | Flash | Ram |" >> $GITHUB_STEP_SUMMARY + echo "|-------|-------|-----|" >> $GITHUB_STEP_SUMMARY + echo "| ${{ matrix.envName }} | ${{ steps.compile_sketch.outputs.SKETCHSIZE }} | ${{ steps.compile_sketch.outputs.GLOBALRAMUSAGE }} |" >> $GITHUB_STEP_SUMMARY - - name: Find Comment - if: ${{ github.event.pull_request.number > 0 }} - uses: peter-evans/find-comment@v2 - id: fc + - name: Upload artifact + uses: actions/upload-artifact@v3 with: - issue-number: ${{ github.event.pull_request.number }} - body-includes: ${{ github.sha }} - - - name: Create comment - if: ${{ github.event.pull_request.number > 0 && steps.fc.outputs.comment-id == 0 && github.event.pull_request.head.repo.fork == false }} + name: SIGNALduino_${{ matrix.envName }}.${{ steps.compile_sketch.outputs.FILEEXT }} + path: | + .pio/build/${{ matrix.envName }}/SIGNALduino*.${{ steps.compile_sketch.outputs.FILEEXT }} + if-no-files-found: warn + release: + needs: build + permissions: + contents: write + runs-on: ubuntu-latest + + steps: + - name: Download artifact + id: download + uses: actions/download-artifact@v3 + + - name: 'Echo download path' + run: ls -R ${{steps.download.outputs.download-path}} - uses: peter-evans/create-or-update-comment@v2 - with: - issue-number: ${{ github.event.pull_request.number }} - body: | - ### Size report for commit: ${{ github.sha }} - | ENV | Flash | Ram | - |-------|-------|-----| - | ${{ matrix.envName }} | ${{ steps.compile_sketch.outputs.SKETCHSIZE }} bytes | ${{ steps.compile_sketch.outputs.GLOBALRAMUSAGE }} | - - name: Update comment - if: ${{ github.event.pull_request.number > 0 && steps.fc.outputs.comment-id != 0 && github.event.pull_request.head.repo.fork == false }} - uses: peter-evans/create-or-update-comment@v2 - with: - comment-id: ${{ steps.fc.outputs.comment-id }} - body: | - | ${{ matrix.envName }} | ${{ steps.compile_sketch.outputs.SKETCHSIZE }} bytes | ${{ steps.compile_sketch.outputs.GLOBALRAMUSAGE }} | - - name: Upload Release Asset id: upload-release-asset - uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') + uses: softprops/action-gh-release@v1 with: generate_release_notes: true draft: true files: | - .pio/build/${{ matrix.envName }}/SIGNALduino*.bin - .pio/build/${{ matrix.envName }}/SIGNALduino*.hex - - - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - name: SIGNALDuino_${{ matrix.envName }} - path: | - .pio/build/${{ matrix.envName }}/SIGNALduino*.bin - .pio/build/${{ matrix.envName }}/SIGNALduino*.hex - if-no-files-found: warn + ${{steps.download.outputs.download-path}}/SIGNALduino* \ No newline at end of file diff --git a/SIGNALDuino.code-workspace b/SIGNALDuino.code-workspace index 6fabc5d8..c663ab2c 100644 --- a/SIGNALDuino.code-workspace +++ b/SIGNALDuino.code-workspace @@ -1,114 +1,37 @@ { - "settings": { - "editor.tokenColorCustomizations": { - "textMateRules": [ - { - "scope": "googletest.failed", - "settings": { - "foreground": "#f00" - } - }, - { - "scope": "googletest.passed", - "settings": { - "foreground": "#0f0" - } - }, - { - "scope": "googletest.run", - "settings": { - "foreground": "#0f0" - } - } - ] - }, - "files.associations": { - "xstring": "cpp", - "bitset": "cpp", - "sstream": "cpp", - "limits": "cpp", - "istream": "cpp", - "*.tcc": "cpp", - "iosfwd": "cpp", - "xlocale": "cpp", - "string_view": "cpp", - "array": "cpp", - "deque": "cpp", - "initializer_list": "cpp", - "list": "cpp", - "queue": "cpp", - "random": "cpp", - "type_traits": "cpp", - "vector": "cpp", - "xhash": "cpp", - "xtree": "cpp", - "xutility": "cpp", - "utility": "cpp", - "ostream": "cpp", - "algorithm": "cpp", - "atomic": "cpp", - "cctype": "cpp", - "chrono": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "condition_variable": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "exception": "cpp", - "forward_list": "cpp", - "fstream": "cpp", - "functional": "cpp", - "iomanip": "cpp", - "ios": "cpp", - "iostream": "cpp", - "iterator": "cpp", - "locale": "cpp", - "map": "cpp", - "memory": "cpp", - "mutex": "cpp", - "new": "cpp", - "numeric": "cpp", - "optional": "cpp", - "ratio": "cpp", - "set": "cpp", - "shared_mutex": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "string": "cpp", - "system_error": "cpp", - "thread": "cpp", - "tuple": "cpp", - "typeinfo": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "xfacet": "cpp", - "xiosbase": "cpp", - "xlocbuf": "cpp", - "xlocinfo": "cpp", - "xlocmes": "cpp", - "xlocmon": "cpp", - "xlocnum": "cpp", - "xloctime": "cpp", - "xmemory": "cpp", - "xmemory0": "cpp", - "xstddef": "cpp", - "xtr1common": "cpp", - "cinttypes": "cpp" - } - }, - "folders": [ - { - "path": "." - }, - { - "path": "tests" - } - ] + "folders": [ + { + "path": "." + }, + { + "path": "tests" + } + ], + "settings": { + "editor.tokenColorCustomizations": { + "textMateRules": [ + { + "scope": "googletest.failed", + "settings": { + "foreground": "#f00" + } + }, + { + "scope": "googletest.passed", + "settings": { + "foreground": "#0f0" + } + }, + { + "scope": "googletest.run", + "settings": { + "foreground": "#0f0" + } + } + ] + }, + "gtest-adapter.debugConfig": [ + "PIO Debug" + ] + } } \ No newline at end of file diff --git a/extra_script.py b/extra_script.py index 23db3270..f20b51e1 100644 --- a/extra_script.py +++ b/extra_script.py @@ -29,17 +29,22 @@ # Build versions with a point are difficult to process # System uses dot for file extension - +reftype = os.environ.get('GITHUB_REF_TYPE','local') basetag = ( subprocess.check_output(["git", "describe", "--tags", "--first-parent", "--abbrev=1"]) .strip() .decode("utf-8") ) -build_version = os.environ.get('GITHUB_REF_NAME',basetag+"+"+date) +if (reftype == 'branch') : + build_version = basetag+os.environ.get('GITHUB_REF_NAME')+"+"+date +elif (reftype == 'tag') : + build_version = os.environ.get('GITHUB_REF_NAME',basetag+"+"+date) +else: + build_version = basetag+"+"+date # write project hex, bin, elf like SIGANALduino_esp32_CC1101_3.5.0-11-gcc56+230423.bin -env.Replace(PROGNAME="SIGANALduino_{0}_{1}".format(build_name,build_version)) +env.Replace(PROGNAME="SIGNALduino_{0}_{1}".format(build_name,build_version)) env.Append(CPPDEFINES=[ ("PROGVERS",env.StringifyMacro(build_version)), diff --git a/platformio.ini b/platformio.ini index 07be8d12..da59a1e0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -30,7 +30,7 @@ test_dir = tests/ build_src_filter = +<*> -<.git/> -<.svn/> - - - -<_micro-api/libraries/ArduinoJson/test/> -<_micro-api/libraries/ArduinoJson/third-party/> -<_micro-api/libraries/fastdelegate/examples/>- - -<_micro-api/libraries/ArduinoJson/fuzzing/> lib_extra_dirs = src/_micro-api/libraries/ #debug_port = COM6 -#monitor_port = COM6 +#monitor_port = COM6f #upload_port = COM6 upload_speed = 921600 @@ -302,6 +302,7 @@ monitor_port = ${env.monitor_port} upload_port = ${env.upload_port} build_flags=-D OTHER_BOARD_WITH_CC1101=1 + [env:nano_bootl_new@debug] ; Arduino Nano ATmega328 - bootloader Optiboot ; RAM: [===== ] 51.3% (used 1050 bytes from 2048 bytes) @@ -315,6 +316,20 @@ upload_port = ${env.upload_port} build_flags = -D DEBUG build_src_filter = -cc1101.h -cc1101.cpp +<*> -<.git/> -<.svn/> - - - -<_micro-api/libraries/ArduinoJson/test/> -<_micro-api/libraries/ArduinoJson/third-party/> -<_micro-api/libraries/fastdelegate/examples/>- - -<_micro-api/libraries/ArduinoJson/fuzzing/> + +[env:nano_bootl_new] +; Arduino Nano ATmega328 - bootloader Optiboot +; RAM: [==== ] 42.1% (used 862 bytes from 2048 bytes) +; Flash: [======= ] 69.8% (used 21452 bytes from 30720 bytes) +platform = atmelavr +board = nanoatmega328new +monitor_speed = 57600 +framework = arduino +monitor_port = ${env.monitor_port} +upload_port = ${env.upload_port} +build_flags= + + [env:io] ; Arduino Nano ATmega328 - bootloader Optiboot ; RAM: [==== ] 42.1% (used 862 bytes from 2048 bytes)