From b7bbc060a8aae0fdc796cf23543c3372b0a13b92 Mon Sep 17 00:00:00 2001 From: Paul Date: Wed, 21 Feb 2024 10:06:00 +0000 Subject: [PATCH] Add compile workflows --- .github/workflows/build-for-release.yml | 124 ++++++++++++++++++++++++ .github/workflows/non-release-build.yml | 109 +++++++++++++++++++++ Extras/UartPower3.zip | Bin 7541844 -> 7542866 bytes 3 files changed, 233 insertions(+) create mode 100644 .github/workflows/build-for-release.yml create mode 100644 .github/workflows/non-release-build.yml diff --git a/.github/workflows/build-for-release.yml b/.github/workflows/build-for-release.yml new file mode 100644 index 0000000..aa6edc0 --- /dev/null +++ b/.github/workflows/build-for-release.yml @@ -0,0 +1,124 @@ +# Workflow that builds the firmware, and adds the binary to the ./Binaries folder, ready for release. + +name: build-for-release + +# Controls when the workflow will run +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + branches: + +env: + FILENAME_PREFIX: OpenLog_Artemis + +jobs: + build: + + name: Build + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Extract branch name + run: echo "BRANCH=${{github.ref_name}}" >> $GITHUB_ENV + + - name: Get firmware version 1 + run: | + echo "firmwareMajor=$(grep -Po "(?<=FIRMWARE_VERSION_MAJOR = )([0-9])*(?=;$)" ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino)" >> "$GITHUB_ENV" + echo "firmwareMinor=$(grep -Po "(?<=FIRMWARE_VERSION_MINOR = )([0-9])*(?=;$)" ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino)" >> "$GITHUB_ENV" + + - name: Get firmware version 2 + run: echo "firmwareMajorMinor=-V10-v${{ env.firmwareMajor }}${{ env.firmwareMinor }}" >> "$GITHUB_ENV" + + - 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/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json" + + - name: Update index + run: arduino-cli core update-index + + - name: Install platform + run: arduino-cli core install "Sparkfun:apollo3@2.2.1" + + - name: Get Known Libraries + run: arduino-cli lib install + "SdFat@2.2.2" + "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library" + "SparkFun I2C Mux Arduino Library" + "SparkFun CCS811 Arduino Library" + "SparkFun VL53L1X 4m Laser Distance Sensor" + "SparkFun BME280" + "SparkFun LPS25HB Pressure Sensor Library" + "SparkFun VEML6075 Arduino Library" + "SparkFun PHT MS8607 Arduino Library" + "SparkFun MCP9600 Thermocouple Library" + "SparkFun SGP30 Arduino Library" + "SparkFun VCNL4040 Proximity Sensor Library" + "SparkFun MS5637 Barometric Pressure Library" + "SparkFun High Precision Temperature Sensor TMP117 Qwiic" + "SparkFun u-blox GNSS Arduino Library" + "SparkFun 6DoF ISM330DHCX" + "SparkFun Qwiic Scale NAU7802 Arduino Library" + "SparkFun SCD30 Arduino Library" + "SparkFun Qwiic Humidity AHT20" + "SparkFun SHTC3 Humidity and Temperature Sensor Library" + "SparkFun ADS122C04 ADC Arduino Library" + "SparkFun MicroPressure Library" + "SparkFun Particle Sensor Panasonic SN-GCJA5" + "SparkFun SGP40 Arduino Library" + "SparkFun Qwiic Button and Qwiic Switch Library" + "SparkFun Bio Sensor Hub Library" + "SparkFun MMC5983MA Magnetometer Arduino Library" + "SparkFun ADS1015 Arduino Library" + "SparkFun KX13X Arduino Library" + "SparkFun SDP3x Arduino Library" + + - 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/bluerobotics/BlueRobotics_MS5837_Library.git + + - name: Patch Apollo3 Core + run: | + cd ./Extras + unzip UartPower3.zip + cp HardwareSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h + cp HardwareSerial.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp + cp UnbufferedSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h + cp serial_api.c /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c + cp libmbed-os.a /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a + cp SPI.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src/SPI.cpp + rm *.h + rm *.cpp + rm *.a + rm *.c + rm *.odt + + - name: Compile Sketch + run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino + --build-property "compiler.cpp.extra_flags=\"-DICM_20948_USE_DMP\" + + - name: Rename binary + run: | + cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ + mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin + echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" + rm *.axf + rm *.hex + rm *.map + + - name: Move binary + run: mv ${{ env.targetBinary }} ./Binaries + + - uses: actions-js/push@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: ${{ env.BRANCH }} + directory: './Binaries' + message: 'Pushing new firmware binary' diff --git a/.github/workflows/non-release-build.yml b/.github/workflows/non-release-build.yml new file mode 100644 index 0000000..65457c4 --- /dev/null +++ b/.github/workflows/non-release-build.yml @@ -0,0 +1,109 @@ +# Workflow that builds the firmware, but doesn't add to a release. + +name: non-release-build + +# Controls when the workflow will run +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + branches: + +env: + FILENAME_PREFIX: OpenLog_Artemis + +jobs: + build: + + name: Build + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Get firmware version 1 + run: | + echo "firmwareMajor=$(grep -Po "(?<=FIRMWARE_VERSION_MAJOR = )([0-9])*(?=;$)" ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino)" >> "$GITHUB_ENV" + echo "firmwareMinor=$(grep -Po "(?<=FIRMWARE_VERSION_MINOR = )([0-9])*(?=;$)" ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino)" >> "$GITHUB_ENV" + + - name: Get firmware version 2 + run: echo "firmwareMajorMinor=-V10-v${{ env.firmwareMajor }}${{ env.firmwareMinor }}" >> "$GITHUB_ENV" + + - 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/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json" + + - name: Update index + run: arduino-cli core update-index + + - name: Install platform + run: arduino-cli core install "Sparkfun:apollo3@2.2.1" + + - name: Get Known Libraries + run: arduino-cli lib install + "SdFat@2.2.2" + "SparkFun 9DoF IMU Breakout - ICM 20948 - Arduino Library" + "SparkFun I2C Mux Arduino Library" + "SparkFun CCS811 Arduino Library" + "SparkFun VL53L1X 4m Laser Distance Sensor" + "SparkFun BME280" + "SparkFun LPS25HB Pressure Sensor Library" + "SparkFun VEML6075 Arduino Library" + "SparkFun PHT MS8607 Arduino Library" + "SparkFun MCP9600 Thermocouple Library" + "SparkFun SGP30 Arduino Library" + "SparkFun VCNL4040 Proximity Sensor Library" + "SparkFun MS5637 Barometric Pressure Library" + "SparkFun High Precision Temperature Sensor TMP117 Qwiic" + "SparkFun u-blox GNSS Arduino Library" + "SparkFun 6DoF ISM330DHCX" + "SparkFun Qwiic Scale NAU7802 Arduino Library" + "SparkFun SCD30 Arduino Library" + "SparkFun Qwiic Humidity AHT20" + "SparkFun SHTC3 Humidity and Temperature Sensor Library" + "SparkFun ADS122C04 ADC Arduino Library" + "SparkFun MicroPressure Library" + "SparkFun Particle Sensor Panasonic SN-GCJA5" + "SparkFun SGP40 Arduino Library" + "SparkFun Qwiic Button and Qwiic Switch Library" + "SparkFun Bio Sensor Hub Library" + "SparkFun MMC5983MA Magnetometer Arduino Library" + "SparkFun ADS1015 Arduino Library" + "SparkFun KX13X Arduino Library" + "SparkFun SDP3x Arduino Library" + + - 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/bluerobotics/BlueRobotics_MS5837_Library.git + + - name: Patch Apollo3 Core + run: | + cd ./Extras + unzip UartPower3.zip + cp HardwareSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-extend/HardwareSerial.h + cp HardwareSerial.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/arduino/mbed-bridge/core-implement/HardwareSerial.cpp + cp UnbufferedSerial.h /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/drivers/UnbufferedSerial.h + cp serial_api.c /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/cores/mbed-os/targets/TARGET_Ambiq_Micro/TARGET_Apollo3/device/serial_api.c + cp libmbed-os.a /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/variants/SFE_ARTEMIS_ATP/mbed/libmbed-os.a + cp SPI.cpp /home/runner/.arduino15/packages/SparkFun/hardware/apollo3/2.2.1/libraries/SPI/src/SPI.cpp + + - name: Compile Sketch + run: arduino-cli compile -v -e -b SparkFun:apollo3:sfe_artemis_atp ./Firmware/${{ env.FILENAME_PREFIX }}/${{ env.FILENAME_PREFIX }}.ino + --build-property "compiler.cpp.extra_flags=\"-DICM_20948_USE_DMP\" + + - name: Rename binary + run: | + cd ./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/ + mv ${{ env.FILENAME_PREFIX }}.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin + echo "targetBinary=./Firmware/${{ env.FILENAME_PREFIX }}/build/SparkFun.apollo3.sfe_artemis_atp/${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin" >> "$GITHUB_ENV" + + - name: Upload binary to action + uses: actions/upload-artifact@v3 + with: + name: ${{ env.FILENAME_PREFIX }}${{ env.firmwareMajorMinor }}.bin + path: ${{ env.targetBinary }} diff --git a/Extras/UartPower3.zip b/Extras/UartPower3.zip index ac4ccd59d3763a66d8d2e165041b35814daaba3d..9505d26d80decc4bb2a4fd4164f8ca2e0b5cfa4b 100644 GIT binary patch delta 1296 zcmZ{jc{CIV0LF(gj5O~1zH*c^InuOJM!DsR+(tBxalLG>mSNsUC^{tdl1G_G*&U5q zk(FvHWpu1zr9(xlT_ctaH9O6&{bT>!_r3SM_Z|QKM%spm!&irhC6IwEh>!yb@=yR7 zidX|BtOW(iP=PAcpbiaaLJQi^fiCo*4+9v&2*xmhDa>FF3s_CT0cIMd z5C~*~MpEZm3z0z3P$Cc%R@?AUKL>hlE~hR#=cSu!Nxx`MoIw&tcC_(L)!lNU z2a~OM?Sez$k&m^e0TDwFE{2`-e?gMYZwYg3wisV>x>IsrxX^fbidUo@)k|roXsGh+ zNfMoL@dk?JL%H|m>=uUIZPo`fIYpIosfs$P!xee@vQrto6JMCq!5!Ly_9(+!1#cOA zc6I0S+g9~c`jWo@P_jE1B(b%dr=P@Q*E|dNgz} zD(=pdQJv-#msOT5?*&>apJn@8-C9bX%RbmeFbQGsql@A{JNHR=tcR1XL6zz+FKs8S zxL=?d#Fl_zKx~4H&rKIML?P#3w@W6^rh;8j@RlEKZs#%gxucWl%Z=0qF zwrBQ}$7of#CplF21lH&0UvfttJy8f_)D=$`=ViGcET0iw>NhGq!6>JQjcM7w{i z7)?3iWy7wue-&BAq1nlrx1B!rrt%k~y86J07PB-#`GRhmK#;jo*t1?(XW&iNzr1*b zM7!6sU9#7Vt68}127B(@mWyA*C!P#lQw~WNJ14*6MLm1-bS#GTep?=uZ8_Ds_Rmn> zlKc-bS`u2SiAB1s#%#W!8DrU0QJZY-%Ntaw;eJXcQcosIJE~p#=-+Yj-zsDrQakN% z^u>;GxqZsfJ`+jCv-SSJe@t~;NL#smp4XT?@0f5tETs3NZ**&po|gK+x|)a)_O5_~ ze-I@H7AstC4+uZGviNB4XahTHA2EJo?17s>?7uRvm-HQysqI;LnL6F$UXb(67eVi> zJ~5wLcDacAY>&1V}3TD23l=5qH^3(Y5xvc?NGl`iu+Ge6tW*oeF zlxLNg%Ov4=@Vu@-&r@)b-xh3fh2H7u8r|wEYN!yoP2RNP#_|tjcF$FICs=UPCl9&C zb(D)PREXRs#a7%z{!(VQw6fdVf|)ca@A|5#++cP}O1kkxy&zx4PexXg@c&q^l1-2y cn6CQj`#;D-14#1!4hpN{$Pfti+6AlWA60crD*ylh delta 268 zcmWN^S27#`0D$3L%MuY~vxweFLiFBA^q!_gP4u?x1w4G0aDzO0Fyj)&7~??p|DOKm z+lSE0|A)}Epd=y5QiP>S^G3S2GQ5*1OST*l??vUxlkbB9g^Cm_QL0S23YDrKxuYdOJJ8FO^26uH02i^qb|lyD$XI3X4c K1Rf*t#JvI&7+=Bw