name: Builds static Parsee for a release. on: [release, workflow_dispatch] jobs: compile: runs-on: amd64-debian container: image: debian:12 steps: - name: Install LMDB+OpenSSL tools run: | echo $(uname -a) $(env | grep container) apt update -y apt install -y build-essential liblmdb-dev nodejs libssl-dev git wget python3 python3-pip bzip2 - name: Clone everything run: | mkdir -p repos git clone --depth=1 https://git.musl-libc.org/git/musl repos/musl wget https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-3.6.1/mbedtls-3.6.1.tar.bz2 tar -xvf mbedtls-3.6.1.tar.bz2 mv mbedtls-3.6.1/ repos/mbed git clone --depth=1 https://github.com/LMDB/lmdb repos/lmdb git clone -b add-mbed --single-branch https://git.telodendria.io/lda/Cytoplasm repos/cyto echo "PREFIX=$GITHUB_WORKSPACE/usr" >> $GITHUB_ENV echo "PATH=$GITHUB_WORKSPACE/usr/bin:$PATH" >> $GITHUB_ENV echo "INCLUDE_PATH=$GITHUB_WORKSPACE/usr/include" >> $GITHUB_ENV echo "LIBRARY_PATH=$GITHUB_WORKSPACE/usr/lib" >> $GITHUB_ENV - name: Build musl run: | cd repos/musl ./configure --prefix=${PREFIX} make -j$(nproc) make install -j$(nproc) alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" - name: Build MbedTLS run: | alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" cd repos/mbed python3 -m pip install -r scripts/basic.requirements.txt --break-system-packages make CC=musl-gcc -j$(nproc) make install DESTDIR=${PREFIX} -j$(nproc) - name: Build LMDB run: | alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" cd repos/lmdb/libraries/liblmdb make CC=musl-gcc make install prefix=${PREFIX} - name: Build Cytoplasm run: | alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" cd repos/cyto git fetch ./configure --cc=musl-gcc --prefix=${PREFIX} --with-lmdb --with-mbed make -j$(nproc) make install - name: Clone/Build Parsee run: | git clone https://git.kappach.at/${{ github.repository}} parsee cd parsee alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" musl-gcc -static configure.c -o configure && ./configure -s -l make CC=musl-gcc CYTO_INC=${PREFIX}/include CYTO_LIB=${PREFIX}/lib LDFLAGS=-s make PREFIX=bins install - name: Create a final archive run: | cd parsee echo "NAM=parsee-$(uname)-$(uname -m).tar.gz" >> $GITHUB_ENV tar -czvf $PWD/bins.tar.hz $PWD/bins echo "DIR=$PWD/bins.tar.gz" >> $GITHUB_ENV - name: Upload it all(as a ZIP of a .TGZ) uses: https://code.forgejo.org/forgejo/upload-artifact@v4 with: name: ${{ env.NAM }} compression-level: 9 path: ${{ env.DIR }}