Build RTK Everywhere #184
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 RTK Everywhere | |
| on: | |
| workflow_dispatch: | |
| branches: | |
| env: | |
| FILENAME_PREFIX: RTK_Everywhere_Firmware | |
| FIRMWARE_VERSION_MAJOR: 2 | |
| FIRMWARE_VERSION_MINOR: 3 | |
| 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 "JSON_ENDING=" >> "$GITHUB_ENV" | |
| echo "JSON_FILE_NAME=RTK-Everywhere-Firmware.json" >> "$GITHUB_ENV" | |
| echo "ENABLE_DEVELOPER=false" >> "$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 "JSON_ENDING=-${{ steps.dateNoScores.outputs.dateNoScores }}" >> "$GITHUB_ENV" | |
| echo "JSON_FILE_NAME=RTK-Everywhere-RC-Firmware.json" >> "$GITHUB_ENV" | |
| echo "ENABLE_DEVELOPER=true" >> "$GITHUB_ENV" | |
| echo "DEBUG_LEVEL=error" >> "$GITHUB_ENV" | |
| fi | |
| - name: Run Dockerfile and copy files | |
| # The --quiet suppresses the build output, keeping the secrets safe | |
| run: | | |
| cd ./Firmware | |
| echo "*** The docker build is quiet to protect the GitHub secrets ***" | |
| docker build -t rtk_everywhere_firmware --no-cache --quiet \ | |
| --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 POINTPERFECT_LBAND_TOKEN="${{ secrets.POINTPERFECT_LBAND_TOKEN }}" \ | |
| --build-arg POINTPERFECT_IP_TOKEN="${{ secrets.POINTPERFECT_IP_TOKEN }}" \ | |
| --build-arg POINTPERFECT_LBAND_IP_TOKEN="${{ secrets.POINTPERFECT_LBAND_IP_TOKEN }}" \ | |
| --build-arg POINTPERFECT_RTCM_TOKEN="${{ secrets.POINTPERFECT_RTCM_TOKEN }}" \ | |
| --build-arg ENABLE_DEVELOPER=${{ env.ENABLE_DEVELOPER }} \ | |
| --build-arg DEBUG_LEVEL=${{ env.DEBUG_LEVEL }} \ | |
| . | |
| docker create --name=rtk_everywhere rtk_everywhere_firmware:latest | |
| mkdir ./build | |
| docker cp rtk_everywhere:/RTK_Everywhere.ino.bin ./build | |
| docker cp rtk_everywhere:/RTK_Everywhere.ino.elf ./build | |
| docker cp rtk_everywhere:/RTK_Everywhere/form.h ./RTK_Everywhere | |
| docker container rm rtk_everywhere | |
| - name: Commit and push form.h | |
| run: | | |
| git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
| git config --local user.name "github-actions[bot]" | |
| git add ./Firmware/RTK_Everywhere/form.h | |
| git commit -m "Update form.h via Python" | |
| git push origin ${{ env.BRANCH }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Rename binary | |
| run: | | |
| cd ./Firmware/build | |
| mv RTK_Everywhere.ino.bin ${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}.bin | |
| - name: Upload binary to action | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }} | |
| path: ./Firmware/build/${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}.bin | |
| - name: Push binary to Binaries Repo | |
| # uses: dmnemec/copy_file_to_another_repo_action #Workaround for Issue: https://github.com/orgs/community/discussions/55820#discussioncomment-5946136 | |
| uses: Jason2866/copy_file_to_another_repo_action@http408_fix | |
| env: | |
| API_TOKEN_GITHUB: ${{ secrets.PUSH_BINARIES_REPO }} | |
| with: | |
| source_file: ./Firmware/build/${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}.bin | |
| destination_repo: 'sparkfun/SparkFun_RTK_Everywhere_Firmware_Binaries' | |
| destination_folder: '' | |
| user_email: 'nathan@sparkfun.com' | |
| user_name: 'nseidle' | |
| commit_message: 'Github Action - Updating Binary ${{ steps.dateNoScores.outputs.dateNoScores }}' | |
| - name: Update JSON File | |
| uses: "DamianReeves/write-file-action@master" | |
| with: | |
| path: ${{ env.JSON_FILE_NAME }} | |
| write-mode: overwrite | |
| contents: | | |
| {"Configurations": [{"Version":"${{ env.FIRMWARE_VERSION_MAJOR }}.${{ env.FIRMWARE_VERSION_MINOR }}${{ env.JSON_ENDING }}", "URL":"https://raw.githubusercontent.com/sparkfun/SparkFun_RTK_Everywhere_Firmware_Binaries/main/${{ env.FILENAME_PREFIX }}${{ env.FILE_ENDING_UNDERSCORE }}.bin"}]} | |
| - name: Push JSON to Binaries Repo | |
| # uses: dmnemec/copy_file_to_another_repo_action #Workaround for Issue: https://github.com/orgs/community/discussions/55820#discussioncomment-5946136 | |
| uses: Jason2866/copy_file_to_another_repo_action@http408_fix | |
| env: | |
| API_TOKEN_GITHUB: ${{ secrets.PUSH_BINARIES_REPO }} | |
| with: | |
| source_file: ${{ env.JSON_FILE_NAME }} | |
| destination_repo: 'sparkfun/SparkFun_RTK_Everywhere_Firmware_Binaries' | |
| destination_folder: '' | |
| user_email: 'nathan@sparkfun.com' | |
| user_name: 'nseidle' | |
| commit_message: 'Github Action - Updating JSON ${{ steps.dateNoScores.outputs.dateNoScores }}' |