1+ name : Python 3.11.8 32-bit Builder
2+
3+ on : [push, pull_request]
4+
5+ jobs :
6+ build :
7+ runs-on : ubuntu-latest
8+
9+ strategy :
10+ matrix :
11+ python-version : [3.11.8]
12+
13+ steps :
14+ - name : Checkout repository
15+ uses : actions/checkout@v4
16+
17+ - name : Install dependencies
18+ run : |
19+ sudo dpkg --add-architecture i386
20+ sudo apt-get update
21+ sudo apt-get install -y \
22+ build-essential \
23+ zlib1g-dev:i386 \
24+ libncurses5-dev:i386 \
25+ libgdbm-dev:i386 \
26+ libnss3-dev:i386 \
27+ libssl-dev:i386 \
28+ libreadline-dev:i386 \
29+ libffi-dev:i386 \
30+ wget \
31+ curl \
32+ libbz2-dev:i386 \
33+ libsqlite3-dev:i386 \
34+ liblzma-dev:i386 \
35+ gcc-multilib \
36+ g++-multilib \
37+ libexpat1-dev:i386 \
38+ libuuid1:i386 \
39+ libmpdec-dev:i386
40+
41+ - name : Set up cache for Python source
42+ uses : actions/cache@v3
43+ id : build-cache
44+ with :
45+ path : /home/runner/.millennium/ext/data/cache
46+ key : ${{ runner.os }}-python-linux-3.11.8-build
47+ restore-keys : ${{ runner.os }}-python-linux-3.11.8-build-
48+
49+ - name : Download Python 3.11.8 source
50+ if : steps.build-cache.outputs.cache-hit != true
51+ run : |
52+ wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz
53+ tar -xf Python-3.11.8.tgz
54+
55+ - name : Configure and build Python 3.11.8 (32-bit)
56+ if : steps.build-cache.outputs.cache-hit != true
57+ run : |
58+ mkdir -p $HOME/build
59+ cd Python-3.11.8
60+ sudo CFLAGS="-m32" LDFLAGS="-m32" ./configure --prefix=$HOME/build --enable-optimizations
61+ sudo make -j$(nproc)
62+
63+ - name : Verify Python Installation
64+ run : |
65+ $HOME/build/bin/python3.11 --version
66+
67+ - name : Setup installation
68+ run : |
69+ sudo mkdir -p $HOME/build/lib/tmp
70+ cd $HOME/build/lib/tmp
71+ sudo ar -x ../libpython3.11.a
72+ sudo gcc -m32 -shared -o ../libpython-3.11.8.so *.o
73+
74+ cd ..
75+ sudo rm -rf $HOME/build/lib/tmp
76+ ls
77+
78+ sudo rm -rf $HOME/build/lib/python3.11/test/
79+ sudo rm -rf $HOME/build/share
80+ sudo rm -rf $HOME/build/include
81+ sudo rm -rf $HOME/build/lib/python3.11/__pycache__/
82+ sudo rm -rf $HOME/build/lib/python3.11/config-3.11-x86_64-linux-gnu/
83+ sudo rm $HOME/build/lib/libpython3.11.a
84+
85+ $HOME/build/bin/python3.11 --version
86+
87+ - name : Upload Python 3.11.8 (32-bit) artifact
88+ uses : actions/upload-artifact@v4
89+ with :
90+ name : python-3.11.8-32-bit
91+ path : $HOME/build
0 commit comments