diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d068753..738021d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,17 +68,28 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - name: Build ARM + - name: Build ARM on Bullseye run: | - docker build -t bliss-analyser-cross - < docker/Dockerfile + docker build -t bliss-analyser-cross - < docker/Dockerfile_Bullseye docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross - name: Upload artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: - name: bliss-analyser-linux-arm + name: bliss-analyser-linux-arm-bullseye + path: releases/ + + - name: Build ARM on Bookworm + run : | + docker build -t bliss-analyser-cross - < docker/Dockerfile_Bookworm + docker run --rm -v $PWD/target:/build -v $PWD:/src bliss-analyser-cross + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: bliss-analyser-linux-arm-bookworm path: releases/ # macOs builds are failing: error: could not find system library 'libavutil' required by the 'ffmpeg-sys-next' crate diff --git a/docker/Dockerfile_Bookworm b/docker/Dockerfile_Bookworm new file mode 100644 index 0000000..a5506fb --- /dev/null +++ b/docker/Dockerfile_Bookworm @@ -0,0 +1,38 @@ +# Cross compilation environment for bliss-mixer + +FROM debian:bookworm + +RUN dpkg --add-architecture arm64 && \ + dpkg --add-architecture armhf +RUN apt-get update + +RUN apt-get install -y curl git yasm +RUN apt-get install -y build-essential clang +RUN apt-get install -y crossbuild-essential-armhf crossbuild-essential-arm64 + +RUN apt-get install -y pkg-config:arm64 \ + libavutil-dev:arm64 libavcodec-dev:arm64 libavformat-dev:arm64 \ + libavfilter-dev:arm64 libavdevice-dev:arm64 libswresample-dev:arm64 libfftw3-dev:arm64 + +RUN apt-get install -y pkg-config:armhf \ + libavutil-dev:armhf libavcodec-dev:armhf libavformat-dev:armhf \ + libavfilter-dev:armhf libavdevice-dev:armhf libswresample-dev:armhf libfftw3-dev:armhf + +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y +ENV PATH="/root/.cargo/bin/:${PATH}" +RUN rustup target add aarch64-unknown-linux-gnu && \ + rustup target add arm-unknown-linux-gnueabihf + +RUN mkdir /.cargo && \ + echo '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"' > /.cargo/config && \ + echo '[target.arm-unknown-linux-gnueabihf]\nlinker = "arm-linux-gnueabihf-gcc"' >> /.cargo/config + +RUN mkdir /build +ENV CARGO_TARGET_DIR /build +ENV CARGO_HOME /build/cache + +RUN mkdir /src + +WORKDIR /src +CMD ["/src/docker/docker-build.sh"] + diff --git a/docker/Dockerfile b/docker/Dockerfile_Bullseye similarity index 100% rename from docker/Dockerfile rename to docker/Dockerfile_Bullseye