Update ci.yml #68
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python 3.11.8 32-bit Builder | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build-windows: | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
runs-on: windows-latest | |
steps: | |
- name: (Python) Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: (Python) Download 3.11.8 win32 source | |
run: . scripts\build.ps1 | |
build-linux: | |
permissions: | |
contents: write | |
issues: write | |
pull-requests: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update | |
sudo apt-get install -y \ | |
build-essential \ | |
zlib1g-dev:i386 \ | |
libncurses5-dev:i386 \ | |
libgdbm-dev:i386 \ | |
libnss3-dev:i386 \ | |
libssl-dev:i386 \ | |
libreadline-dev:i386 \ | |
libffi-dev:i386 \ | |
libbz2-dev:i386 \ | |
libsqlite3-dev:i386 \ | |
liblzma-dev:i386 \ | |
gcc-multilib \ | |
g++-multilib \ | |
libexpat1-dev:i386 \ | |
libuuid1:i386 | |
- name: Download Python 3.11.8 source | |
run: | | |
echo "Downloading Python 3.11.8 source to $(pwd)" | |
wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz | |
tar -xf Python-3.11.8.tgz | |
- name: Configure and build Python 3.11.8 (32-bit) | |
run: | | |
mkdir -p /tmp/python-build | |
cd Python-3.11.8 | |
sudo CFLAGS="-m32" LDFLAGS="-m32" ./configure --prefix=/tmp/python-build --enable-optimizations | |
sudo make -j$(nproc) | |
sudo make altinstall | |
- name: Setup installation | |
run: | | |
sudo mkdir -p /tmp/python-build/lib/tmp | |
cd /tmp/python-build/lib/tmp | |
sudo ar -x ../libpython3.11.a | |
sudo gcc -m32 -shared -o ../libpython-3.11.8.so *.o | |
cd /tmp/python-build/lib | |
sudo rm -rf tmp | |
ls | |
# Remove unimportant files that take up lots of space | |
sudo rm -rf /tmp/python-build/lib/python3.11/test/ | |
sudo rm -rf /tmp/python-build/lib/python3.11/__pycache__/ | |
sudo rm -rf /tmp/python-build/lib/python3.11/config-3.11-x86_64-linux-gnu/ | |
sudo rm -rf /tmp/python-build/lib/python3.11/tkinter/ | |
sudo rm -rf /tmp/python-build/lib/python3.11/idlelib/ | |
sudo rm -rf /tmp/python-build/lib/python3.11/turtledemo/ | |
# Remove the static library as we've built a shared library | |
sudo rm /tmp/python-build/lib/libpython3.11.a | |
# Strip the build binaries to reduce size | |
sudo strip /tmp/python-build/bin/python3.11 | |
sudo strip /tmp/python-build/lib/libpython-3.11.8.so | |
# Remove extra bin files that are not needed | |
sudo rm /tmp/python-build/bin/python3.11-config | |
sudo rm /tmp/python-build/bin/idle3.11 | |
sudo rm /tmp/python-build/bin/pydoc3.11 | |
sudo rm /tmp/python-build/bin/pip3.11 | |
sudo rm /tmp/python-build/bin/2to3-3.11 | |
cd /tmp | |
sudo tar -czf python-3.11.8-32-bit.tar.gz ./python-build | |
- name: Upload Python 3.11.8 (32-bit) artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
include-hidden-files: true | |
name: python-3.11.8-32-bit | |
path: /tmp/python-build | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Install Semantic Release | |
run: npm install --save-dev semantic-release @semantic-release/github @semantic-release/exec @semantic-release/changelog @semantic-release/git | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create GitHub Release | |
run: npx semantic-release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |