mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 13:45:10 +00:00
75 lines
3 KiB
YAML
75 lines
3 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"
|
|
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)" >> $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@fix-artifact-v4-upload-above-8MB
|
|
with:
|
|
name: ${{ env.NAM }}
|
|
compression-level: 9
|
|
path: ${{ env.DIR }}
|