Skip to content

github: Bump dependencies. #3686

github: Bump dependencies.

github: Bump dependencies. #3686

Workflow file for this run

name: Build
on:
push:
branches:
- '**'
tags-ignore:
- '@pybricks/**'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAKEOPTS: -j2
jobs:
upload_pr_number:
name: upload pull request number
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir -p ./pr
echo $PR_NUMBER > ./pr/pr_number
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr/
mpy_cross:
name: mpy-cross
runs-on: ubuntu-22.04
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: true
- name: Build mpy-cross
run: make $MAKEOPTS -C micropython/mpy-cross
- name: Upload mpy-cross
if: ${{ success() }}
uses: actions/upload-artifact@v4
with:
name: mpy-cross
path: micropython/mpy-cross/build/mpy-cross
unix_coverage:
name: unix coverage
needs: mpy_cross
runs-on: ubuntu-22.04
env:
PYBRICKS_NO_REDIRECT_STDOUT: 1
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: true
- name: Download mpy-cross
uses: actions/download-artifact@v4
with:
name: mpy-cross
path: micropython/mpy-cross/build
- name: Fix file permission
run: chmod +x micropython/mpy-cross/build/mpy-cross
- name: Build
run: |
cd micropython
make ${MAKEOPTS} -C ports/unix VARIANT=coverage submodules
make ${MAKEOPTS} -C ports/unix VARIANT=coverage deplibs
make ${MAKEOPTS} -C ports/unix VARIANT=coverage
- name: Test
if: ${{ success() }}
run: |
cd micropython
make -C ports/unix VARIANT=coverage test_full
(cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/build-coverage/micropython ./run-multitests.py multi_net/*.py)
- name: List failed tests
if: failure()
run: micropython/tests/run-tests.py --print-failures
firmware:
name: firmware
strategy:
fail-fast: false
matrix:
hub: [cityhub, essentialhub, movehub, nxt, primehub, technichub]
needs: [mpy_cross]
runs-on: ubuntu-22.04
steps:
- name: Install cross-compiler
run: sudo apt-get update && sudo apt-get install --yes gcc-arm-none-eabi
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Download mpy-cross
uses: actions/download-artifact@v4
with:
name: mpy-cross
path: micropython/mpy-cross/build
- name: Fix file permission
run: chmod +x micropython/mpy-cross/build/mpy-cross
- run: pipx install poetry
- run: poetry install --only=stats
- name: Build firmware (pull request)
if: ${{ github.base_ref != null }}
run: poetry run .github/build-each-commit.py ${{ matrix.hub }} ${{ github.sha }}
- name: Build firmware (non-master branch)
if: ${{ github.base_ref == null && github.ref != 'refs/heads/master' }}
env:
STORAGE_ACCOUNT: ${{ secrets.STORAGE_ACCOUNT }}
STORAGE_KEY: ${{ secrets.STORAGE_KEY }}
STORAGE_URL: ${{ secrets.STORAGE_URL }}
FIRMWARE_SIZE_TABLE: ${{ secrets.FIRMWARE_SIZE_TABLE }}
run: poetry run .github/build-each-commit.py ${{ matrix.hub }} ${{ github.ref_name }}
- name: Build firmware (master branch)
if: ${{ github.base_ref == null && github.ref == 'refs/heads/master' }}
run: |
export MICROPY_GIT_TAG=ci-build-${{ github.run_number }}-$(git describe --tags --dirty --always --exclude "@pybricks/*")
export MICROPY_GIT_HASH=$(echo ${{ github.sha }} | cut -c1-8)
make -C bricks/${{ matrix.hub }}
- name: Extract firmware.zip for upload
if: ${{ success()}}
working-directory: bricks/${{ matrix.hub }}/build
run: unzip firmware.zip -d upload
- name: Short hash
id: vars
run: echo "short_sha=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_OUTPUT
- name: Upload firmware
if: ${{ success()}}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.hub }}-firmware-build-${{ github.run_number }}-git${{ steps.vars.outputs.short_sha }}
path: bricks/${{ matrix.hub }}/build/upload/*
virtualhub:
name: virtual hub
needs: [mpy_cross]
runs-on: ubuntu-22.04
steps:
- name: Install depedencies
run: sudo apt-get update && sudo apt-get install lcov python3-numpy --yes
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Checkout submodules
run: |
cd micropython
git submodule update --init --depth 0 lib/axtls
git submodule update --init --depth 0 lib/berkeley-db-1.xx
git submodule update --init --depth 0 lib/libffi
- name: Download mpy-cross
uses: actions/download-artifact@v4
with:
name: mpy-cross
path: micropython/mpy-cross/build
- name: Fix file permission
run: chmod +x micropython/mpy-cross/build/mpy-cross
- name: Build and test
run: COVERAGE=1 ./test-virtualhub.sh
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: bricks/virtualhub/build-coverage/lcov.info
flag-name: virtualhub
parallel: true
pbio:
name: pbio tests
runs-on: ubuntu-22.04
env:
PBIO_TEST_RESULTS_DIR: lib/pbio/test/results
steps:
- name: Install prerequisites
run: |
sudo apt-get update
sudo apt-get install --yes doxygen graphviz lcov
- name: Checkout repo
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
make $MAKEOPTS -C lib/pbio/test
- name: Build docs
run: |
make $MAKEOPTS -C lib/pbio/doc
- name: Build coverage
run: |
make $MAKEOPTS -C lib/pbio/test build-coverage/lcov.info
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: lib/pbio/test/build-coverage/lcov.info
flag-name: PBIO
parallel: true
finish:
needs: [virtualhub, pbio]
runs-on: ubuntu-22.04
steps:
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true