mirror of
https://git.kappach.at/lda/Parsee.git
synced 2025-04-21 18:16:44 +02:00
85 lines
3.2 KiB
YAML
85 lines
3.2 KiB
YAML
name: Builds static Parsee
|
|
on: [push]
|
|
jobs:
|
|
compile:
|
|
strategy:
|
|
matrix:
|
|
distro:
|
|
- debian
|
|
arch:
|
|
- amd64
|
|
- arm64
|
|
runs-on:
|
|
- ${{ matrix.distro }}
|
|
- ${{ matrix.arch }}
|
|
container:
|
|
image: ${{ matrix.distro }}
|
|
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
|
|
rm configure
|
|
wget https://kappach.at/configure
|
|
chmod +x configure
|
|
./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)" >> $GITHUB_ENV
|
|
echo "DIR=$PWD/bins" >> $GITHUB_ENV
|
|
- name: Upload it all(as a ZIP)
|
|
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
with:
|
|
name: ${{ env.NAM }}
|
|
path: ${{ env.DIR }}
|
|
compression-level: 9
|