diff --git a/.forgejo/workflows/build-release.yaml b/.forgejo/workflows/build-release.yaml index 6878f4a..c9617d7 100644 --- a/.forgejo/workflows/build-release.yaml +++ b/.forgejo/workflows/build-release.yaml @@ -1,10 +1,56 @@ name: Builds static Parsee for a release. -on: [release] +on: [release, workflow_dispatch] jobs: compile: runs-on: amd64-debian container: image: debian:12 steps: - - name: TODO - run: TODO + - 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 + - name: Clone everything + run: | + mkdir -p repos + git clone --depth=1 https://git.musl-libc.org/git/musl repos/musl + git clone --depth=1 https://github.com/openssl/openssl repos/openssl + git clone --depth=1 https://github.com/LMDB/lmdb repos/lmdb + git clone --depth=1 https://git.kappach.at/KappaChat/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 OpenSSL + run: | + alias musl-gcc="musl-gcc -Wl,-Bstatic -L ${PREFIX}/lib" + cd repos/openssl + CC=musl-gcc ./Configure -static --static --prefix=${PREFIX} no-async no-engine -DOPENSSL_NO_SECURE_MEMORY + make -j$(nproc) + make install -j$(nproc) + cp libcrypto.a ${PREFIX}/lib + cp libssl.a ${PREFIX}/lib + - 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 + rm configure + wget https://kappach.at/configure + chmod +x configure + ./configure --cc=musl-gcc --prefix=${PREFIX} --with-lmdb + make -j$(nproc) + make install