sco1 / skyportal

A PyPortal based flight tracker
MIT License
1 stars 0 forks source link

Set up release pipeline #5

Closed sco1 closed 1 year ago

sco1 commented 1 year ago

Once a release is published, it would be helpful to bundle only the files that need to be transferred over into a single release artifact so a user can just copy it over.

Additionally, a step to compile the skyportal directory to MPY is not required but would fun to do anyway, probably as a separate artifact (I think these can then go into /lib?)

See: https://github.com/adafruit/circuitpython/tree/main/mpy-cross#micropython-cross-compiler and https://pypi.org/project/mpy-cross/

sco1 commented 1 year ago

Can probably use https://cli.github.com/manual/gh_release_upload since gh is available on all hosted runners. Still need to figure out the rest of the bits

sco1 commented 1 year ago

The pipeline is mostly intact, but mpy compilation needs additional work.

This executes correctly:

    - name: Create compiled bundle
      run: |
        cp bundle_base.tar skyportal_bundle_compiled.tar
        tar -rvf skyportal_bundle_compiled.tar -C ./dist/ .
        gzip skyportal_bundle_compiled.tar

But we get:

code.py output:
Traceback (most recent call last):
  File "code.py", line 9, in <module>
ValueError: Incompatible .mpy file. Please update all .mpy files. See http://adafru.it/mpy-update for more info.

Possibly an issue with the version of mpy-cross from PyPI but haven't looked into it yet.

sco1 commented 1 year ago

Turns out the PyPI package is targeted at MicroPython & isn't compatible with CircuitPython.

The simplest path forward is to vendor the compilers from Adafruit's S3 and call these in CI. Famous last words but it seems to work fine with local testing.