name: build on: [push] env: UPLOAD_USER_FIRMWARE: true jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 with: submodules: recursive - name: before_install run: | sudo apt update sudo apt install -y gcc git wget make libncurses-dev flex bison python python-setuptools python-serial ninja-build wget https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz - name: install run: | tar -xzf ./xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz python -m pip install --user -r ./ESP8266_RTOS_SDK/requirements.txt - name: script id: script run: | export IDF_PATH=$PWD/ESP8266_RTOS_SDK export PATH="$PATH:$PWD/xtensa-lx106-elf/bin" echo "FIRMWARE=$PWD/build" >> $GITHUB_ENV python ./idf.py fullclean python ./idf.py build echo "::set-output name=status::success" - name: Generate release tag id: tag if: env.UPLOAD_USER_FIRMWARE == 'true' && steps.script.outputs.status == 'success' && !cancelled() run: | echo "::set-output name=release_tag::UserBuild_$(date +"%Y.%m.%d_%H-%M")" echo "::set-output name=status::success" - name: Merge bin files if: steps.tag.outputs.status == 'success' && !cancelled() run: | git clone https://github.com/espressif/esptool.git ./esptool/esptool.py --chip esp8266 merge_bin -o build/esp8266_dap_full.bin 0x0 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/esp8266_dap.bin mv build/esp8266_dap.bin build/esp8266_dap_app.bin - name: Release user firmware uses: softprops/action-gh-release@v1 if: steps.tag.outputs.status == 'success' && !cancelled() env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.tag.outputs.release_tag }} files: | ${{ env.FIRMWARE }}/esp8266_dap_full.bin ${{ env.FIRMWARE }}/esp8266_dap_app.bin ${{ env.FIRMWARE }}/bootloader/bootloader.bin ${{ env.FIRMWARE }}/partition_table/partition-table.bin