Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
370eb151e2 | ||
|
d0b93bd275 | ||
|
f1f5ac01bd | ||
|
8101f98860 | ||
|
3b4c00b1bb | ||
|
4518983b36 | ||
|
d5106dd5e2 | ||
|
730a18437c | ||
|
1ae2de4315 | ||
|
8bcaa7a235 | ||
|
b2ae0d364a | ||
|
51528cbb41 | ||
|
db4030f49b | ||
|
fb87de1d85 | ||
|
f65f436273 |
23
.github/workflows/build.yml
vendored
Normal file
23
.github/workflows/build.yml
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
name: build_mpy
|
||||
on: [push]
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: Build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: run build script
|
||||
run: ./docker_mpy_build.sh
|
||||
|
||||
- name: look
|
||||
run: ls -la compiled/
|
||||
|
||||
- name: Archive
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mpy
|
||||
path: compiled
|
37
Dockerfile
37
Dockerfile
@ -1,39 +1,20 @@
|
||||
FROM python:3.9-slim-buster
|
||||
|
||||
ARG KMKPY_REF
|
||||
ARG KMKPY_URL
|
||||
|
||||
ENV KMKPY_REF ${KMKPY_REF}
|
||||
ENV KMKPY_URL ${KMKPY_URL}
|
||||
|
||||
RUN mkdir -p /app /dist
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && apt-get install -y build-essential curl gettext git git-lfs rsync wget zip lbzip2
|
||||
RUN pip install pipenv
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
|
||||
# Pull CircuitPython-designated ARM GCC to avoid mismatches/weird
|
||||
# inconsistencies with upstream
|
||||
RUN curl -L -o /tmp/gcc-arm.tar.bz2 https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 && \
|
||||
tar -C /usr --strip-components=1 -xaf /tmp/gcc-arm.tar.bz2 && \
|
||||
rm -rf /tmp/gcc-arm.tar.bz2
|
||||
RUN curl https://adafruit-circuit-python.s3.amazonaws.com/bin/mpy-cross/linux-amd64/mpy-cross.static-amd64-linux-8.0.0 --output mpy-cross-8
|
||||
RUN curl https://adafruit-circuit-python.s3.amazonaws.com/bin/mpy-cross/linux-amd64/mpy-cross.static-amd64-linux-7.0.0 --output mpy-cross-7
|
||||
|
||||
# Get a local copy of KMKPython and its dependencies. We don't provide MPY
|
||||
# builds for kmkpython anymore, so we can get away with being opinionated
|
||||
# here.
|
||||
RUN git init /opt/kmkpython && \
|
||||
git -C /opt/kmkpython remote add origin ${KMKPY_URL} && \
|
||||
git -C /opt/kmkpython fetch --depth 1 origin ${KMKPY_REF} && \
|
||||
git -C /opt/kmkpython checkout FETCH_HEAD && \
|
||||
git -C /opt/kmkpython submodule update --init --recursive
|
||||
|
||||
# Build the MPY compiler
|
||||
RUN make -C /opt/kmkpython/mpy-cross
|
||||
RUN chmod +x mpy-cross-8
|
||||
|
||||
ENV PATH=/opt/kmkpython/mpy-cross:${PATH}
|
||||
RUN chmod +x mpy-cross-7
|
||||
|
||||
RUN mkdir -p /opt/kmkpython/frozen/kmk/kmk
|
||||
COPY ./build_kmkpython_release.sh /app/
|
||||
COPY ./kmk /opt/kmkpython/frozen/kmk/kmk
|
||||
|
||||
CMD /app/build_kmkpython_release.sh
|
||||
COPY ./docker_mpy_build.sh /app/build.sh
|
||||
# COPY ./kmk /app/kmk/
|
||||
|
||||
CMD ["bash", "build.sh"]
|
||||
|
0
compiled/.gitkeep
Normal file
0
compiled/.gitkeep
Normal file
7
docker-compose.yml
Normal file
7
docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
mpy_kmk:
|
||||
build: .
|
||||
volumes:
|
||||
- ./kmk:/app/kmk
|
||||
- ./.compiled:/app/compiled
|
14
docker_mpy_build.sh
Executable file
14
docker_mpy_build.sh
Executable file
@ -0,0 +1,14 @@
|
||||
|
||||
#!/bin/sh
|
||||
echo "building mpy"
|
||||
echo $(ls compiled)
|
||||
|
||||
find kmk/ -name "*.py" -exec sh -c 'mkdir -p compiled/8/$(dirname {}) &&\
|
||||
./mpy-cross-8 -O2 {} -o compiled/8/$(dirname {})/$(basename -s .py {}).mpy' \;
|
||||
|
||||
find kmk/ -name "*.py" -exec sh -c 'mkdir -p compiled/7/$(dirname {}) &&\
|
||||
./mpy-cross-7 -O2 {} -o compiled/7/$(dirname {})/$(basename -s .py {}).mpy' \;
|
||||
|
||||
echo $(ls compiled)
|
||||
|
||||
echo "done building"
|
39
kmk_python_Dockerfile
Normal file
39
kmk_python_Dockerfile
Normal file
@ -0,0 +1,39 @@
|
||||
FROM python:3.9-slim-buster
|
||||
|
||||
ARG KMKPY_REF
|
||||
ARG KMKPY_URL
|
||||
|
||||
ENV KMKPY_REF ${KMKPY_REF}
|
||||
ENV KMKPY_URL ${KMKPY_URL}
|
||||
|
||||
RUN mkdir -p /app /dist
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && apt-get install -y build-essential curl gettext git git-lfs rsync wget zip lbzip2
|
||||
RUN pip install pipenv
|
||||
|
||||
# Pull CircuitPython-designated ARM GCC to avoid mismatches/weird
|
||||
# inconsistencies with upstream
|
||||
RUN curl -L -o /tmp/gcc-arm.tar.bz2 https://adafruit-circuit-python.s3.amazonaws.com/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2 && \
|
||||
tar -C /usr --strip-components=1 -xaf /tmp/gcc-arm.tar.bz2 && \
|
||||
rm -rf /tmp/gcc-arm.tar.bz2
|
||||
|
||||
# Get a local copy of KMKPython and its dependencies. We don't provide MPY
|
||||
# builds for kmkpython anymore, so we can get away with being opinionated
|
||||
# here.
|
||||
RUN git init /opt/kmkpython && \
|
||||
git -C /opt/kmkpython remote add origin ${KMKPY_URL} && \
|
||||
git -C /opt/kmkpython fetch --depth 1 origin ${KMKPY_REF} && \
|
||||
git -C /opt/kmkpython checkout FETCH_HEAD && \
|
||||
git -C /opt/kmkpython submodule update --init --recursive
|
||||
|
||||
# Build the MPY compiler
|
||||
RUN make -C /opt/kmkpython/mpy-cross
|
||||
|
||||
ENV PATH=/opt/kmkpython/mpy-cross:${PATH}
|
||||
|
||||
RUN mkdir -p /opt/kmkpython/frozen/kmk/kmk
|
||||
COPY ./build_kmkpython_release.sh /app/
|
||||
COPY ./kmk /opt/kmkpython/frozen/kmk/kmk
|
||||
|
||||
CMD /app/build_kmkpython_release.sh
|
BIN
mpy-cross-7
Executable file
BIN
mpy-cross-7
Executable file
Binary file not shown.
BIN
mpy-cross-8
Executable file
BIN
mpy-cross-8
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user