Build GNSSDO Firmware #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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' |