mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-27 12:24:43 +03:00
3d0afd5444
Adding new CI workflows building static executables for linux, both intel 64-bit and ARM32v7. These will be useful for providing hledger on Nextcloud, and also as general linux executables, more robust than the ubuntu executable we have been providing.
40 lines
2.8 KiB
Docker
40 lines
2.8 KiB
Docker
FROM arm32v7/ubuntu:20.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get -qq update && apt-get install -y --no-install-recommends tzdata && apt-get install -y gcc g++ make xz-utils wget vim libtinfo5 git python3 libgmp-dev libtinfo-dev zlib1g-dev locales && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN locale-gen en_US.UTF-8 && update-locale LC_ALL=en_US.UTF-8 && update-locale LANG=en_US.UTF-8 && update-locale LANGUAGE=en_US.UTF-8
|
|
|
|
ENV LC_ALL=en_US.UTF-8
|
|
ENV LANG=en_US.UTF-8
|
|
ENV LANGUAGE=en_US.UTF-8
|
|
|
|
# Download and install LLVM 9.0, GHC 8.10.4, cabal 3.0, and newer libffi (for cabal)
|
|
RUN wget --no-check-certificate "https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/clang+llvm-9.0.1-armv7a-linux-gnueabihf.tar.xz" \
|
|
&& wget --no-check-certificate "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-armv7-deb10-linux.tar.xz" \
|
|
&& wget --no-check-certificate "http://ports.ubuntu.com/ubuntu-ports/pool/universe/libf/libffi/libffi8ubuntu1-udeb_3.4~20200819gead65ca871-0ubuntu3_armhf.udeb" \
|
|
&& wget --no-check-certificate "http://ports.ubuntu.com/ubuntu-ports/pool/universe/h/haskell-cabal-install/cabal-install_3.0.0.0-3build1_armhf.deb" \
|
|
&& echo "91638613913537f8c0c84a59f59f00fafeafb6b189164cae471d4e3bccaf1df3 clang+llvm-9.0.1-armv7a-linux-gnueabihf.tar.xz" | sha256sum -c \
|
|
&& echo "0d18ef83593272f6196a41cc3abdc48dfe5e14372db75d71ea19fe35320c4e81 ghc-8.10.4-armv7-deb10-linux.tar.xz" | sha256sum -c \
|
|
&& echo "d9c2ab89b31b156e83320431922a8cc9302f0e4ddd89900028362d18a938cf00 libffi8ubuntu1-udeb_3.4~20200819gead65ca871-0ubuntu3_armhf.udeb" | sha256sum -c \
|
|
&& echo "3afd883584ea01d8253b0273a3704c60c4f704ae7d7ac92dbb709ef951f8b2d6 cabal-install_3.0.0.0-3build1_armhf.deb" | sha256sum -c \
|
|
&& tar xvf clang+llvm-9.0.1-armv7a-linux-gnueabihf.tar.xz \
|
|
&& tar xvf ghc-8.10.4-armv7-deb10-linux.tar.xz \
|
|
&& cd clang+llvm-9.0.1-armv7a-linux-gnueabihf && mv bin/* /usr/local/bin/ && mv include/* /usr/local/include/ && mv lib/* /usr/local/lib/ && cd .. && rm clang+llvm-9.0.1-armv7a-linux-gnueabihf.tar.xz \
|
|
&& cd ghc-8.10.4 && ./configure && make install && cd .. && rm -r ghc-8.10.4 && rm ghc-8.10.4-armv7-deb10-linux.tar.xz \
|
|
&& dpkg -i --force-all libffi8ubuntu1-udeb_3.4~20200819gead65ca871-0ubuntu3_armhf.udeb cabal-install_3.0.0.0-3build1_armhf.deb \
|
|
&& rm libffi8ubuntu1-udeb_3.4~20200819gead65ca871-0ubuntu3_armhf.udeb cabal-install_3.0.0.0-3build1_armhf.deb
|
|
|
|
# Run cabal update
|
|
RUN cabal update
|
|
|
|
# Get access to hledger source to build
|
|
COPY . /hledger
|
|
|
|
# Build static hledger binary
|
|
RUN cd /hledger && cabal build --enable-executable-static --with-compiler=/usr/local/bin/ghc-8.10.4 hledger
|
|
|
|
# Strip symbols from binary
|
|
RUN cp /hledger/dist-newstyle/build/arm-linux/ghc-*/hledger-*/x/hledger/build/hledger/hledger /root/ && strip /root/hledger
|