Skip to content

Build GNSSDO Firmware #12

Build GNSSDO Firmware

Build GNSSDO Firmware #12

name: Build GNSSDO Firmware
on:
workflow_dispatch:
branches:
env:
FILENAME_PREFIX: GNSSDO_Firmware
FIRMWARE_VERSION_MAJOR: 1
FIRMWARE_VERSION_MINOR: 5
CORE_VERSION: 3.0.7
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@main
- name: Get current date
id: date
run: echo "date=$(date +'%b_%d_%Y')" >> $GITHUB_OUTPUT
- name: Get current date
id: dateNoScores
run: echo "dateNoScores=$(date +'%b %d %Y')" >> $GITHUB_OUTPUT
- name: Extract branch name
run: echo "BRANCH=${{github.ref_name}}" >> $GITHUB_ENV
#File_Name_v1_0.bin
#File_Name_RC-Jan_26_2023.bin
- name: Create file ending and compiler flags based on branch
run: |
if [[ $BRANCH == 'main' ]]; then
echo "FILE_ENDING_UNDERSCORE=_v${{ env.FIRMWARE_VERSION_MAJOR }}_${{ env.FIRMWARE_VERSION_MINOR }}" >> "$GITHUB_ENV"
echo "FILE_ENDING_NOUNDERSCORE=_v${{ env.FIRMWARE_VERSION_MAJOR }}.${{ env.FIRMWARE_VERSION_MINOR }}" >> "$GITHUB_ENV"
echo "DEBUG_LEVEL=none" >> "$GITHUB_ENV"
else
echo "FILE_ENDING_UNDERSCORE=_RC-${{ steps.date.outputs.date }}" >> "$GITHUB_ENV"
echo "FILE_ENDING_NOUNDERSCORE=_RC-${{ steps.dateNoScores.outputs.dateNoScores }}" >> "$GITHUB_ENV"
echo "DEBUG_LEVEL=debug" >> "$GITHUB_ENV"
fi
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Start config file
run: arduino-cli config init --additional-urls "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json"
- name: Update core index
run: arduino-cli core update-index
- name: Update library index
run: arduino-cli lib update-index
- name: Install platform
run: arduino-cli core install esp32:esp32@${{ env.CORE_VERSION }}
- name: Get IDF version
run: |
cd /home/runner/.arduino15/packages/esp32/tools/esp32-arduino-libs
IDF_VERSION=$(ls | grep idf-release)
echo "ESP_IDF=${IDF_VERSION}" >> "$GITHUB_ENV"
- name: Get Known Libraries
run: arduino-cli lib install
ESP32Time@2.0.0
JC_Button@2.1.2
"SparkFun Qwiic OLED Arduino Library"@1.0.13
"SparkFun Toolkit"@0.9.2
# "SparkFun SiT5358 DCTCXO Arduino Library"@1.0.0
# "SparkFun SiT5811 OCXO Arduino Library"@1.0.0
# "SparkFun STP3593LF OCXO Arduino Library"@1.0.0
- name: Enable external libs
run: arduino-cli config set library.enable_unsafe_install true
- name: Get Libraries
run: arduino-cli lib install --git-url
https://github.com/sparkfun/SparkFun_SiT5358_DCTCXO_Arduino_Library.git
https://github.com/sparkfun/SparkFun_SiT5811_OCXO_Arduino_Library.git
https://github.com/sparkfun/SparkFun_STP3593LF_OCXO_Arduino_Library.git
- name: Copy custom app3M_fat9M_16MB.csv
run:
cp Firmware/app3M_fat9M_16MB.csv /home/runner/.arduino15/packages/esp32/hardware/esp32/${{ env.CORE_VERSION }}/tools/partitions/app3M_fat9M_16MB.csv
- name: Compile Sketch
run: arduino-cli compile --fqbn "esp32:esp32:esp32":DebugLevel=${{ env.DEBUG_LEVEL }} ./Firmware/GNSSDO_Firmware/GNSSDO_Firmware.ino
--build-property build.partitions=app3M_fat9M_16MB
--build-property upload.maximum_size=3145728
--build-property "compiler.cpp.extra_flags=-MMD -c \"-DFIRMWARE_VERSION_MAJOR=$FIRMWARE_VERSION_MAJOR\" \"-DFIRMWARE_VERSION_MINOR=$FIRMWARE_VERSION_MINOR\""
--export-binaries
- name: Rename binary
run: |
cd Firmware/GNSSDO_Firmware/build/esp32.esp32.esp32/
mv GNSSDO_Firmware.ino.bin ../../../Binaries/${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}.bin
- name: Commit and push binary
uses: actions-js/push@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
directory: ./Firmware/Binaries
branch: ${{ env.BRANCH }}
message: 'Push firmware Binary'