Skip to content

Build GNSSDO Firmware #14

Build GNSSDO Firmware

Build GNSSDO Firmware #14

name: Build GNSSDO Firmware
on:
workflow_dispatch:
branches:
env:
FILENAME_PREFIX: GNSSDO_Firmware
FIRMWARE_VERSION_MAJOR: 2
FIRMWARE_VERSION_MINOR: 1
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: Run Dockerfile and copy files
run: |
cd ./Firmware
docker build -t gnssdo_firmware --no-cache \
--build-arg CORE_VERSION=${{ env.CORE_VERSION }} \
--build-arg FIRMWARE_VERSION_MAJOR=${{ env.FIRMWARE_VERSION_MAJOR }} \
--build-arg FIRMWARE_VERSION_MINOR=${{ env.FIRMWARE_VERSION_MINOR }} \
--build-arg DEBUG_LEVEL=${{ env.DEBUG_LEVEL }} \
.
docker create --name=gnssdo_image gnssdo_firmware:latest
docker cp gnssdo_image:/GNSSDO_Firmware.ino.bin .
docker container rm gnssdo_image
- name: Rename binary
run: |
cd ./Firmware
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'