DesignIndex rework/fixes and attempt at pytest action #102
This file contains 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: UF2 Generate and Release | |
on: | |
workflow_dispatch: | |
push: | |
jobs: | |
create-release: | |
env: | |
RPOS_UF2FILE: RPI_PICO-20241025-v1.24.0.uf2 | |
TT_RUNS_SUPPORTED: "tt04 tt05 tt06 tt07" | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout repo | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
path: sdk | |
- name: Download stock MicroPython UF2 | |
run: wget -O /tmp/rp2-pico.uf2 "https://micropython.org/resources/firmware/$RPOS_UF2FILE" | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
- name: Move ucocotb | |
run: | | |
cp -r $GITHUB_WORKSPACE/sdk/microcotb/src/microcotb $GITHUB_WORKSPACE/sdk/src | |
- name: Get shuttle indices | |
run: | | |
mkdir $GITHUB_WORKSPACE/sdk/src/shuttles | |
for chip in $TT_RUNS_SUPPORTED; do wget -O $GITHUB_WORKSPACE/sdk/src/shuttles/$chip.json "https://index.tinytapeout.com/$chip.json?fields=repo,address,commit,clock_hz,title,danger_level"; done | |
- name: Prepare shuttle bin files | |
run: | | |
cp -R $GITHUB_WORKSPACE/sdk/src $GITHUB_WORKSPACE/sdk/convwork | |
RUNPATH="$GITHUB_WORKSPACE/sdk/convwork:$PYTHONPATH" | |
echo "Path is $RUNPATH" | |
for chip in $TT_RUNS_SUPPORTED; do PYTHONPATH=$RUNPATH python3 $GITHUB_WORKSPACE/sdk/bin/serialize_shuttle.py $GITHUB_WORKSPACE/sdk/src/shuttles/$chip.json; done | |
- name: Run PyTests | |
run: | | |
pip install pytest | |
RUNPATH="$GITHUB_WORKSPACE/sdk/convwork:$PYTHONPATH" | |
cd $GITHUB_WORKSPACE/sdk/test | |
for chip in $TT_RUNS_SUPPORTED; do pytest --shuttle $chip --shuttlepath $GITHUB_WORKSPACE/sdk/src/shuttles test_serialized_shuttle.py; if [ "$?" != "0" ] then echo "FAILURE" fi; done | |
- name: Build the final UF2 | |
run: | | |
pip install uf2utils | |
touch $GITHUB_WORKSPACE/sdk/src/release_${{ github.ref_name }} | |
python -m uf2utils.examples.custom_pico --fs_root $GITHUB_WORKSPACE/sdk/src --upython /tmp/rp2-pico.uf2 --out /tmp/tt-demo-rp2040-${{ github.ref_name }}.uf2 | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: tt-demo-board-firmware | |
path: /tmp/tt-demo-rp2040-${{ github.ref_name }}.uf2 | |
- name: Upload Release | |
uses: ncipollo/release-action@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
artifacts: "/tmp/tt-demo-rp2040-${{ github.ref_name }}.uf2" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
generateReleaseNotes: true |