aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2020-04-19 13:11:49 -0400
committerGitHub <noreply@github.com>2020-04-19 12:11:49 -0500
commitb13ad5697d9684231c1c20a83f960e384b337aec (patch)
tree7e15e19cba41d42b70180710932f00b866918948 /.github
parentffd72a6f403fe50b6122cd964bae0bfc08eefa9f (diff)
downloadcryptography-b13ad5697d9684231c1c20a83f960e384b337aec.tar.gz
cryptography-b13ad5697d9684231c1c20a83f960e384b337aec.tar.bz2
cryptography-b13ad5697d9684231c1c20a83f960e384b337aec.zip
Migrate the manylinux wheel builder to GHA (#5202)
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/wheel-builder.yml49
1 files changed, 49 insertions, 0 deletions
diff --git a/.github/workflows/wheel-builder.yml b/.github/workflows/wheel-builder.yml
index 67ea9929..455779c7 100644
--- a/.github/workflows/wheel-builder.yml
+++ b/.github/workflows/wheel-builder.yml
@@ -1,8 +1,57 @@
+name: Wheel Builder
on:
repository_dispatch:
types: [wheel-builder]
jobs:
+ manylinux:
+ runs-on: ubuntu-latest
+ container: ${{ matrix.MANYLINUX.CONTAINER }}
+ strategy:
+ matrix:
+ PYTHON: ["cp27-cp27m", "cp27-cp27mu", "cp35-cp35m"]
+ MANYLINUX:
+ - NAME: manylinux1_x86_64
+ CONTAINER: "pyca/cryptography-manylinux1:x86_64"
+ - NAME: manylinux2010_x86_64
+ CONTAINER: "pyca/cryptography-manylinux2010:x86_64"
+ name: "Python ${{ matrix.PYTHON }} for ${{ matrix.MANYLINUX.NAME }}"
+ steps:
+ - run: /opt/python/${{ matrix.PYTHON }}/bin/python -m virtualenv .venv
+ - name: Downgrade pip, can't remember why
+ run: .venv/bin/pip install -U pip==10.0.1
+ - name: Install Python dependencies
+ run: .venv/bin/pip install cffi six ipaddress "enum34; python_version < '3'"
+ - run: |
+ REGEX="cp3([0-9])*"
+ if [[ "${{ matrix.PYTHON }}" =~ $REGEX ]]; then
+ PY_LIMITED_API="--build-option --py-limited-api=cp3${BASH_REMATCH[1]}"
+ fi
+ LDFLAGS="-L/opt/pyca/cryptography/openssl/lib" \
+ CFLAGS="-I/opt/pyca/cryptography/openssl/include -Wl,--exclude-libs,ALL" \
+ .venv/bin/pip wheel cryptography==${{ github.event.client_payload.BUILD_VERSION }} --no-binary cryptography --no-deps --wheel-dir=tmpwheelhouse $PY_LIMITED_API
+ - run: auditwheel repair --plat ${{ matrix.MANYLINUX.NAME }} tmpwheelhouse/cryptograph*.whl -w wheelhouse/
+ - run: unzip wheelhouse/*.whl -d execstack.check
+ - run: |
+ results=$(execstack execstack.check/cryptography/hazmat/bindings/*.so)
+ count=$(echo "$results" | grep -c '^X' || true)
+ if [ "$count" -ne 0 ]; then
+ exit 1
+ else
+ exit 0
+ fi
+ - name: Upgrade pip again so we can actually use manylinux2010
+ run: .venv/bin/pip install -U pip
+ - run: .venv/bin/pip install cryptography --no-index -f wheelhouse/
+ - run: |
+ .venv/bin/python -c "from cryptography.hazmat.backends.openssl.backend import backend;print('Loaded: ' + backend.openssl_version_text());print('Linked Against: ' + backend._ffi.string(backend._lib.OPENSSL_VERSION_TEXT).decode('ascii'))"
+ - run: mkdir cryptography-wheelhouse
+ - run: mv wheelhouse/cryptography*.whl cryptography-wheelhouse/
+ - uses: actions/upload-artifact@v1
+ with:
+ name: "cryptography-${{ github.event.client_payload.BUILD_VERSION }}-${{ matrix.MANYLINUX.NAME }}-${{ matrix.PYTHON }}"
+ path: cryptography-wheelhouse/
+
windows:
runs-on: windows-latest
strategy: