Skip to content

Commit 3cf1edb

Browse files
committed
Drop -march=native flag.
1 parent d2133e6 commit 3cf1edb

File tree

5 files changed

+62
-32
lines changed

5 files changed

+62
-32
lines changed

.github/workflows/build_and_test.yml

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ permissions:
2424
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
2525
jobs:
2626
build_and_test_python:
27-
continue-on-error: true
2827
strategy:
28+
fail-fast: false
2929
matrix:
3030
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
3131
compiler: ['gcc', 'clang']
@@ -78,59 +78,68 @@ jobs:
7878
python_wheels:
7979
needs: build_and_test_python
8080
runs-on: ubuntu-latest
81-
container:
82-
image: quay.io/pypa/manylinux_2_28:latest
81+
permissions:
82+
packages: write
8383
env:
8484
PY_VER: ${{ matrix.python-version }}
8585
BASE_IMAGE: quay.io/pypa/manylinux_2_28:latest
86+
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/${{ github.event.repository.name }}
8687
environment:
8788
name: pypi
8889
url: https://pypi.org/p/asyncproxy
8990
permissions:
9091
id-token: write
91-
continue-on-error: true
9292
strategy:
93+
fail-fast: false
9394
matrix:
9495
python-version: ['3.9', '3.11', '3.12']
9596
steps:
96-
- name: Install git
97-
run: |
98-
yum install -y git redhat-lsb-core gnupg2 wget ca-certificates yum-utils jq
99-
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
100-
yum install -y docker-ce-cli
97+
- name: Set up Python ${{ env.PY_VER }}
98+
uses: actions/setup-python@v5
99+
with:
100+
python-version: ${{ env.PY_VER }}
101101

102102
- uses: actions/checkout@v4
103103

104-
- name: Set up Python
105-
run: sh -x scipts/build/install_depends_yum.sh
106-
107-
- name: Install dependencies
108-
run: sh -x scipts/build/install_depends_wheels.sh
109-
110104
- name: Set up QEMU
111105
uses: docker/setup-qemu-action@v3
112106

107+
- name: Set up Docker Buildx
108+
uses: docker/setup-buildx-action@v3
109+
113110
- name: Set dynamic environment
114111
id: set-env
115112
run: |
116113
PLATFORMS="`docker manifest inspect ${{ env.BASE_IMAGE }} | \
117114
jq -r '.manifests[] | "\(.platform.os)/\(.platform.architecture)\(if .platform.variant != null then "/\(.platform.variant)" else "" end)"' | \
118115
sort -u | grep -v unknown | paste -sd ','`"
119-
BUILD_MATRIX="`echo ${PLATFORMS} | tr ',' '\n' | jq -R . | jq -s . | tr '\n' ' '`"
120116
GIT_BRANCH="${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}"
121117
GIT_BRANCH="${GIT_BRANCH#refs/tags/}"
122-
BUILD_IMAGE="${{ inputs.ghcr-repo }}:rtp.io-${{ inputs.rtpp-tag }}-${GIT_BRANCH}"
118+
BUILD_IMAGE="${GHCR_REPO}:${GIT_BRANCH}"
123119
echo "Platforms: ${PLATFORMS}"
124-
echo "platforms=${PLATFORMS}" >> $GITHUB_OUTPUT
125-
echo "build-matrix=${BUILD_MATRIX}" >> $GITHUB_OUTPUT
126-
echo "build-image=${BUILD_IMAGE}" >> $GITHUB_OUTPUT
127-
echo "git-branch=${GIT_BRANCH}" >> $GITHUB_OUTPUT
128-
129-
- name: build
130-
run: |
131-
python${PY_VER} setup.py build sdist
132-
python${PY_VER} -m build --wheel
133-
auditwheel repair dist/*.whl --wheel-dir dist/
120+
echo "Build Image: ${BUILD_IMAGE}"
121+
echo "PLATFORMS=${PLATFORMS}" >> $GITHUB_ENV
122+
echo "BUILD_IMAGE=${BUILD_IMAGE}" >> $GITHUB_ENV
123+
mkdir dist
124+
125+
- name: Build Docker image
126+
uses: docker/build-push-action@v6
127+
env:
128+
CACHE_SPEC: "type=registry,ref=${{ env.BUILD_IMAGE }}-buildcache"
129+
with:
130+
context: .
131+
file: ./docker/Dockerfile.python_wheels
132+
build-args: |
133+
BASE_IMAGE=${{ env.BASE_IMAGE }}
134+
PY_VER=${{ env.PY_VER }}
135+
platforms: ${{ env.PLATFORMS }}
136+
push: false
137+
outputs: type=local,dest=./dist_out
138+
cache-from: ${{ env.CACHE_SPEC }}
139+
cache-to: ${{ env.CACHE_SPEC }},mode=max
140+
141+
- name: Show context tree
142+
run: ls -R .
134143

135144
- name: Publish package distributions to PyPI
136145
if: github.event_name == 'release' && github.event.action == 'created'

docker/Dockerfile.python_wheels

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# syntax=docker/dockerfile:1.7-labs
2+
3+
ARG BASE_IMAGE="quay.io/pypa/manylinux_2_28:latest"
4+
FROM --platform=$TARGETPLATFORM $BASE_IMAGE AS build
5+
LABEL maintainer="Maksym Sobolyev <[email protected]>"
6+
7+
USER root
8+
9+
WORKDIR /src
10+
11+
ARG TARGETPLATFORM
12+
ARG PY_VER
13+
RUN --mount=type=bind,source=scripts/build,target=scripts/build \
14+
sh -x scripts/build/install_depends_yum.sh
15+
RUN --mount=type=bind,source=scripts/build,target=scripts/build \
16+
sh -x scripts/build/install_depends_wheels.sh
17+
18+
COPY --exclude=.git --exclude=.github --exclude=docker --exclude=dist \
19+
--exclude=scripts . .
20+
21+
RUN python${PY_VER} setup.py build sdist
22+
RUN python${PY_VER} -m build --wheel
23+
RUN ls -R dist_out
24+
RUN auditwheel repair dist/*.whl --wheel-dir dist_out
File renamed without changes.

scipts/build/install_depends_yum.sh renamed to scripts/build/install_depends_yum.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ then
88
dnf module enable python${PY_VER} -y
99
fi
1010

11-
dnf install -y python${PY_VER} python${PY_VER}-devel
11+
dnf install -y redhat-lsb-core python${PY_VER} python${PY_VER}-devel

setup.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@
2424

2525
debug_opts = ('-g3', '-O0')
2626
nodebug_opts = ('-DNO_DEBUG',)
27-
if not is_mac and not is_win:
28-
nodebug_opts += ('-march=native', '-O3')
29-
else:
30-
nodebug_opts += ('-O3',) if not is_win else ()
27+
nodebug_opts += ('-O3',) if not is_win else ()
3128
if False:
3229
extra_compile_args.extend(debug_opts)
3330
extra_link_args.extend(debug_opts)

0 commit comments

Comments
 (0)