Skip to content

Health: Add current bin in typical step text #3538

Health: Add current bin in typical step text

Health: Add current bin in typical step text #3538

Workflow file for this run

name: Build Firmware
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
changes-firmware:
runs-on: ubuntu-24.04
permissions:
pull-requests: read
outputs:
should-build: ${{ github.event_name == 'push' || steps.filter.outputs.src == 'true' }}
steps:
- uses: dorny/paths-filter@v3
if: github.event_name == 'pull_request'
id: filter
with:
filters: |
src:
- '.github/workflows/build-firmware.yml'
- 'platform/**'
- 'resources/**'
- 'sdk/**'
- 'src/**'
- 'stored_apps/**'
- 'tools/**'
- 'third_party/**'
- 'waftools/**'
- 'waf'
- 'wscript'
build-firmware:
needs: changes-firmware
if: needs.changes-firmware.outputs.should-build == 'true'
runs-on: ubuntu-24.04
container:
image: ghcr.io/coredevices/pebbleos-docker:v5
strategy:
matrix:
board:
- asterix
- obelix_dvt
- obelix_pvt
- getafix_evt
- getafix_dvt
- getafix_dvt2
steps:
- name: Mark Github workspace as safe
run: git config --system --add safe.directory "${GITHUB_WORKSPACE}"
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Install Python dependencies
run: |
pip install -U pip
pip install -r requirements.txt
- name: Get npm cache directory
id: npm-cache-dir
shell: bash
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Configure
run: ./waf configure --board ${{ matrix.board }}
- name: Build
run: ./waf build
- name: Bundle
run: ./waf bundle
- name: Store
uses: actions/upload-artifact@v4
with:
name: firmware-${{ matrix.board }}
path: |
build/**/*.elf
build/**/*.pbz
build/src/fw/tintin_fw_loghash_dict.json
- name: Get Build ID
id: build_id
run: |
echo "BUILD_ID=$(readelf -n build/src/fw/tintin_fw.elf | sed -n -e 's/^.*Build ID: //p')" >> "$GITHUB_OUTPUT"
- name: Upload log hash dictionary
uses: Noelware/s3-action@2.3.1
if: ${{ github.event_name == 'push' && github.repository == 'coredevices/PebbleOS' }}
with:
access-key-id: ${{ secrets.LOG_HASH_BUCKET_KEY_ID }}
secret-key: ${{ secrets.LOG_HASH_BUCKET_SECRET }}
endpoint: ${{ vars.LOG_HASH_BUCKET_ENDPOINT }}
bucket: ${{ vars.LOG_HASH_BUCKET_NAME }}
files: |
build/src/fw/tintin_fw_loghash_dict.json
path-format: ${{ steps.build_id.outputs.BUILD_ID }}-${{ github.sha }}-normal.json
build-firmware-status:
needs: [changes-firmware, build-firmware]
if: always()
runs-on: ubuntu-24.04
steps:
- if: needs.build-firmware.result == 'failure' || needs.build-firmware.result == 'cancelled'
run: exit 1