Skip to content

Commit 329d7a2

Browse files
Merge pull request #277 from sergey-dryabzhinsky/sergey-dryabzhinsky-patch-1
Add github action for cpython3.13 x86
2 parents c77de73 + 4f89871 commit 329d7a2

File tree

1 file changed

+135
-1
lines changed

1 file changed

+135
-1
lines changed

.github/workflows/Build_wheels_for_cpython313_x86_u16.yml

Lines changed: 135 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-latest
1919
matrix: linux
2020
arch: i386
21-
tag_arch: x86_64
21+
tag_arch: i686
2222
release: xenial
2323
mirror: http://azure.archive.ubuntu.com/ubuntu
2424
#version: 1.5.6.7
@@ -34,3 +34,137 @@ jobs:
3434
with:
3535
submodules: 'recursive'
3636

37+
- name: Update and upgrade Ubuntu 24
38+
if: matrix.os.matrix == 'linux'
39+
run: |
40+
sudo apt update;
41+
sudo apt purge -y firefox lxd snapd;
42+
sudo apt install -y zram-config;
43+
sudo apt list --upgradable;
44+
sudo apt upgrade -y;
45+
sudo apt install -f
46+
47+
- name: Build source distribution with Ubuntu
48+
if: matrix.os.matrix == 'linux'
49+
run: |
50+
sudo apt install -y debootstrap qemu-user;
51+
pip install build;
52+
python -m build --sdist --outdir dist .
53+
54+
- name: Debootstrap Ubuntu ${{matrix.os.release}} ${{matrix.os.arch}}
55+
if: matrix.os.matrix == 'linux'
56+
run: |
57+
sudo debootstrap --no-merged-usr --verbose --include=sudo,wget,curl,gnupg,ca-certificates --arch=${{matrix.os.arch}} ${{matrix.os.release}} ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} ${{matrix.os.mirror}} || tail ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/debootstrap/debootstrap.log
58+
59+
- name: Update and Upgrade Ubuntu ${{matrix.os.release}}
60+
if: matrix.os.matrix == 'linux'
61+
run: |
62+
sudo mkdir -p ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel
63+
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/proc -t proc
64+
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/dev/pts -t devpts
65+
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/sys -t sysfs
66+
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list
67+
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list
68+
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list
69+
echo " deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list
70+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update
71+
sudo cp -v ./*.list ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/sources.list.d
72+
false && sudo rm -fv ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/trusted.gpg.d/* && sudo rm -fv ./ubuntu-xenial-x86/etc/apt/trusted.gpg
73+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public.gpg -Orusoft.gpg'
74+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'cd /etc/apt/trusted.gpg.d && wget http://packages.rusoft.ru/apt/public-old.gpg -Orusoft-old.gpg'
75+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c 'apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys A2CE4BCCC50209DD || true'
76+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update
77+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt upgrade -y
78+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt -fy install
79+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt upgrade -y
80+
81+
82+
- name: Pepare dev files
83+
if: matrix.os.matrix == 'linux'
84+
run: |
85+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y libzstd-dev file
86+
87+
- name: Pepare for ${{matrix.os.pypkg}} ${{matrix.os.arch}}
88+
if: matrix.os.matrix == 'linux'
89+
run: |
90+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y ${{matrix.os.pypkg}}-dev gcc pkg-config ${{matrix.os.pypkgadd}}
91+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "wget ${{matrix.os.getpipurl}} -O get-pip.py && ${{matrix.os.pypkg}} get-pip.py || true"
92+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "${{matrix.os.pypkg}} -m pip install -U 'setuptools<72.0'"
93+
94+
- name: Pepare source and build wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}}
95+
if: matrix.os.matrix == 'linux'
96+
run: |
97+
version=`cat version`
98+
sudo mkdir -p ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/
99+
sudo tar -xvf dist/zstd-$version.tar.gz -C ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/
100+
false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} env
101+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} pkg-config libzstd --modversion
102+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC
103+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc -v
104+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version/ && ZSTD_ASM=1 ZSTD_WARNINGS=1 _ZSTD_SMALL=1 LDFLAGS='-Wl,--as-needed -Wl,-s' ZSTD_BUILD_STRIP=1 _ZSTD_SPEED=0 _ZSTD_SPEEDMAX=0 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 _ZSTD_EXTERNAL=0 ${{matrix.os.pypkg}} setup.py bdist_wheel"
105+
106+
- name: Test wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}}
107+
if: matrix.os.matrix == 'linux'
108+
run: |
109+
version=`cat version`
110+
false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} find /build_wheel/
111+
sudo cp -v glibc-check.sh ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/zstd-$version/
112+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version/ && echo LLH; ls -lh build/lib*/zstd.*.so; ldd build/lib*/zstd.*.so ; file build/lib*/zstd.*.so; bash ./glibc-check.sh build/lib*/zstd.*.so"
113+
114+
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version/ && ${{matrix.os.pypkg}} setup.py test"
115+
116+
- name: Pepare wheel for upload
117+
if: matrix.os.matrix == 'linux'
118+
run: |
119+
version=`cat version`
120+
sudo cp -v ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/zstd-$version/dist/* ./dist
121+
sudo ls -lh ./dist/*
122+
sudo mv -v ./dist/"zstd-$version-${{matrix.os.pyengine_tag}}-linux_${{matrix.os.tag_arch}}.whl" ./dist/"zstd-$version-${{matrix.os.pyengine_tag}}-${{matrix.os.libc_tag}}_${{matrix.os.tag_arch}}.whl"
123+
124+
125+
- name: Test for secrets access
126+
id: check_secrets
127+
# If a third party makes a pull request
128+
# this allows automated steps below to be skipped
129+
# and leave a clean PR CI run
130+
shell: bash
131+
run: |
132+
unset HAS_SECRET
133+
unset HAS_SECRET_TEST
134+
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
135+
if [ -n "$SECRET_TEST" ]; then HAS_SECRET_TEST='true' ; fi
136+
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
137+
echo ::set-output name=HAS_SECRET_TEST::${HAS_SECRET_TEST}
138+
env:
139+
SECRET: "${{ secrets.pypi_password }}"
140+
SECRET_TEST: "${{ secrets.test_pypi_password }}"
141+
142+
- name: Install twine
143+
run: pip install 'twine<=6.0.1'
144+
145+
- name: Publish distribution to PyPI
146+
if: >
147+
startsWith(github.event.ref, 'refs/tags') &&
148+
steps.check_secrets.outputs.HAS_SECRET
149+
env:
150+
# If the PR/Push has secret access
151+
# and PYPI_PASSWORD is in GH Secrets for this repo
152+
# and this is a tag, publish to PyPI
153+
TWINE_REPOSITORY_URL: https://upload.pypi.org/legacy/
154+
TWINE_USERNAME: "${{ secrets.pypi_username }}"
155+
TWINE_NON_INTERACTIVE: 1
156+
TWINE_PASSWORD: "${{ secrets.pypi_password }}"
157+
run: twine upload --non-interactive --skip-existing --verbose 'dist/*'
158+
159+
- name: Publish distribution to Test PyPI
160+
if: steps.check_secrets.outputs.HAS_SECRET
161+
env:
162+
# If the PR/Push has secret access
163+
# and TEST_PYPI_PASSWORD is in GH Secrets for this repo
164+
# then publish each build to test PyPI
165+
TWINE_REPOSITORY_URL: https://test.pypi.org/legacy/
166+
TWINE_USERNAME: "${{ secrets.test_pypi_username }}"
167+
TWINE_NON_INTERACTIVE: 1
168+
TWINE_PASSWORD: "${{ secrets.test_pypi_password }}"
169+
run: twine upload --non-interactive --skip-existing --verbose 'dist/*'
170+

0 commit comments

Comments
 (0)