mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 21:35:10 +00:00
88 lines
3.7 KiB
YAML
88 lines
3.7 KiB
YAML
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
|
|
- 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
|
|
- 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"
|
|
export TAB=$(printf '\t')
|
|
echo "all: adminify aya b64 config noavatars" > tools/Makefile
|
|
echo "%: %.c" >> tools/Makefile
|
|
echo "${TAB}musl-gcc -I ../usr/include -static -o ../\$@.\$(shell uname -m) $< -lm -lpthread -lssl -lCytoplasm -lssl -lcrypto -llmdb -flto -fdata-sections -ffunction-sections -s -Wl,-gc-sections -lCytoplasm" >> tools/Makefile
|
|
cat tools/Makefile
|
|
cd tools
|
|
make
|
|
cd ..
|
|
make CC=musl-gcc CYTO_INC=${PREFIX}/include CYTO_LIB=${PREFIX}/lib 2> /dev/null || true
|
|
musl-gcc -static -o "parsee.$(uname -m)" $(find build/ -name '*.o') -lm -lpthread -lssl -lCytoplasm -lssl -lcrypto -llmdb -flto -fdata-sections -ffunction-sections -s -Wl,-gc-sections -lCytoplasm
|
|
ls $PREFIX
|
|
- name: Create a final archive
|
|
run: |
|
|
cd parsee
|
|
mkdir bins
|
|
ls "${PREFIX}"
|
|
ls .
|
|
cp $(find . -maxdepth 1 -name "*.$(uname -m)") bins
|
|
tar -czvf "$(uname)-$(uname -m).tar.gz" bins
|
|
cp "$(uname)-$(uname -m).tar.gz" ..
|
|
echo "NAM=parsee-$(uname)-$(uname -m)" >> $GITHUB_ENV
|
|
echo "DIR=$PWD/bins" >> $GITHUB_ENV
|
|
- name: Upload it all(as a ZIP of a .TGZ)
|
|
uses: https://github.com/christopherhx/gitea-upload-artifact@v4
|
|
with:
|
|
name: ${{ env.NAM }}
|
|
path: ${{ env.DIR }}
|