Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/linuxbrew.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ jobs:
brew update
brew install python@${{ matrix.python }} gcc libxml2 libxmlsec1 pkg-config
echo "/home/linuxbrew/.linuxbrew/opt/python@${{ matrix.python }}/libexec/bin" >> $GITHUB_PATH
- name: Symlink gcc
run: |
ln -sf "$(command -v gcc)" /home/linuxbrew/.linuxbrew/bin/gcc-11
ln -sf "$(command -v g++)" /home/linuxbrew/.linuxbrew/bin/g++-11
- name: Build wheel
run: |
python3 -m venv build_venv
Expand Down
20 changes: 13 additions & 7 deletions .github/workflows/macosx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,22 @@ jobs:
- name: Install build dependencies
run: |
pip install --upgrade pip setuptools wheel build
brew install libxml2 libxmlsec1 pkg-config
brew install libxml2 libxmlsec1 pkg-config openssl@1.1
- name: Build macosx_x86_64 wheel
env:
CC: clang
CFLAGS: "-fprofile-instr-generate -fcoverage-mapping"
LDFLAGS: "-fprofile-instr-generate -fcoverage-mapping"
PYXMLSEC_STATIC_DEPS: ${{ matrix.static_deps }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
export PKG_CONFIG_PATH="$(brew --prefix)/opt/libxml2/lib/pkgconfig"
python -m build
export PYXMLSEC_OPENSSL_VERSION="openssl-1.1.1w"
export PYXMLSEC_OPENSSL_DOWNLOAD_URL="https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz"
export OPENSSL_PREFIX="$(brew --prefix openssl@1.1)"
export CFLAGS="-fprofile-instr-generate -fcoverage-mapping -I${OPENSSL_PREFIX}/include"
export LDFLAGS="-fprofile-instr-generate -fcoverage-mapping -L${OPENSSL_PREFIX}/lib"
export PKG_CONFIG_PATH="$(brew --prefix)/opt/libxml2/lib/pkgconfig:${OPENSSL_PREFIX}/lib/pkgconfig"
pip install "setuptools_scm[toml]>=3.4" "pkgconfig>=1.5.1"
pip install --no-binary "lxml>=3.8,!=4.7.0"
python -m build --no-isolation
rm -rf build/
- name: Set environment variables
shell: bash
Expand All @@ -35,8 +40,9 @@ jobs:
echo "LLVM_PROFILE_FILE=pyxmlsec.profraw" >> $GITHUB_ENV
- name: Install test dependencies
run: |
export PKG_CONFIG_PATH="$(brew --prefix)/opt/libxml2/lib/pkgconfig"
pip install coverage --upgrade --no-binary=lxml -r requirements-test.txt
export LIBXML2_DIR="$(brew --prefix)/opt/libxml2"
export PKG_CONFIG_PATH="$(brew --prefix)/opt/libxml2/lib/pkgconfig:$(brew --prefix openssl@1.1)/lib/pkgconfig"
pip install coverage --upgrade -r requirements-test.txt
pip install xmlsec --only-binary=xmlsec --no-index --find-links=dist/
echo "PYXMLSEC_LIBFILE=$(python -c 'import xmlsec; print(xmlsec.__file__)')" >> $GITHUB_ENV
- name: Run tests
Expand Down
24 changes: 21 additions & 3 deletions .github/workflows/manylinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-abi: [cp36-cp36m, cp37-cp37m, cp38-cp38, cp39-cp39, cp310-cp310, cp311-cp311]
python-abi: [cp36-cp36m, cp37-cp37m, cp38-cp38, cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312, cp313-cp313]
image:
- manylinux2014_x86_64
- manylinux_2_28_x86_64
Expand All @@ -19,9 +19,27 @@ jobs:
chown -R $(id -u):$(id -g) $PWD
/opt/python/${{ matrix.python-abi }}/bin/pip install --upgrade pip setuptools wheel build
- name: Install system build dependencies (manylinux)
run: |
yum install -y perl-core
if: contains(matrix.image, 'manylinux')
run: |
yum install -y perl-core openssl-devel libxml2-devel libxslt-devel wget tar gcc make rpm-build
- name: Install system build dependencies (musllinux)
if: contains(matrix.image, 'musllinux')
run: |
apk add --no-cache openssl-dev libxml2-dev libxslt-dev wget tar gcc make
- name: Build updated crypto and libxmlsec1 (for manylinux2014 only)
if: ${{ matrix.image == 'manylinux2014_x86_64' }}
run: |
yum install -y perl-core wget tar gcc make zlib-devel
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make -j$(nproc)
make install
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/openssl/lib/pkgconfig:$PKG_CONFIG_PATH
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ldconfig
- name: Set environment variables
shell: bash
run: |
Expand Down
Loading