Skip to content

Non-Release Build

Non-Release Build #9

name: Non-Release Build
on:
workflow_dispatch:
branches:
env:
FILENAME_PREFIX: GNSSDO_Firmware
FIRMWARE_VERSION_MAJOR: 9
FIRMWARE_VERSION_MINOR: 9
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
mkdir ./build
docker cp gnssdo_image:/GNSSDO_Firmware.ino.bin ./build
docker cp gnssdo_image:/GNSSDO_Firmware.ino.elf ./build
docker container rm gnssdo_image
- name: Create artifact name
run: |
echo "ARTIFACT=${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}" >> $GITHUB_ENV
- name: Create artifact directory
run: |
cd ./Firmware/build/
mkdir ${{ env.ARTIFACT }}
mv GNSSDO_Firmware.ino.bin ${{ env.ARTIFACT }}
mv GNSSDO_Firmware.ino.elf ${{ env.ARTIFACT }}
- name: Upload artifact directory to action - avoid double-zip
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT }}
path: ./Firmware/build/${{ env.ARTIFACT }}
retention-days: 7