Skip to content
Closed
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
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ environment:
PYTHON_DEF: "C:\\Python38-x64"
PYTHON_VERSION: "3.8"
# Python versions to build wheels for
PYTHONVERS: C:\Python36-x64 C:\Python37-x64 C:\Python38-x64 C:\Python39-x64
PYTHONVERS: C:\Python36-x64 C:\Python37-x64 C:\Python38-x64 C:\Python39-x64 C:\Python310-x64
PYTHON_ARCH: "64"

install:
Expand Down
29 changes: 20 additions & 9 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ jobs:
command: |
twine upload --skip-existing -u $PYPI_USER -p $PYPI_PASSWORD wheels/*

manylinux:
manylinux-x86_64:
machine:
image: ubuntu-1604:201903-01
steps:
steps: &manylinux-steps
- checkout
- run:
name: sdist
Expand All @@ -93,7 +93,8 @@ jobs:
- run:
name: Deps
command: |
sudo apt-get install python-pip
sudo apt-get install python3-pip
pyenv global 3.7.0 || pyenv global 3.9.1
pip install -U pip
pip install twine
which twine
Expand All @@ -112,6 +113,12 @@ jobs:
command: |
twine upload --skip-existing -u $PYPI_USER -p $PYPI_PASSWORD dist/* wheelhouse/*

manylinux2014-aarch64:
machine:
image: ubuntu-2004:202101-01
resource_class: arm.medium
steps: *manylinux-steps

workflows:
version: 2.1
main:
Expand All @@ -126,17 +133,21 @@ workflows:
filters:
tags:
ignore: /.*/
- manylinux:
- manylinux-x86_64: &manylinux-wf
context: Docker
filters:
tags:
only: /.*/
branches:
ignore: /.*/
# filters:
# tags:
# only: /.*/
# branches:
# ignore: /.*/
- manylinux2014-aarch64: *manylinux-wf
- osx:
matrix:
parameters:
xcode_ver:
- "13.1.0"
- "13.0.0"
- "12.5.1"
- "11.6.0"
- "11.1.0"
context: Docker
Expand Down
5 changes: 4 additions & 1 deletion ci/appveyor/fix_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
import sys

def get_describe_tag():
return subprocess.check_output(['git', 'describe', '--tags']).strip().decode('utf-8')
tag = subprocess.check_output(['git', 'describe', '--tags']).strip().decode('utf-8')
tag = "+".join(tag.rsplit("-", 1))
return tag


def make_version_file(basedir):
rev = os.environ.get('APPVEYOR_REPO_COMMIT',
Expand Down
21 changes: 16 additions & 5 deletions ci/build-manylinux.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
#!/bin/bash -xe

docker_tag="parallelssh/ssh-manylinux"
docker_files=("ci/docker/manylinux/Dockerfile" "ci/docker/manylinux/Dockerfile.2014_x86_64")

rm -rf local build ssh/libssh.* ssh/*.so
python ci/appveyor/fix_version.py .

docker pull $docker_tag || echo
docker build --pull --cache-from $docker_tag ci/docker/manylinux -t $docker_tag
if [[ -z "$CIRCLE_PR_NUMBER" ]]; then docker push $docker_tag; fi
docker run --rm -v `pwd`:/io $docker_tag /io/ci/build-wheels.sh
ls wheelhouse/
if [[ `uname -m` == "aarch64" ]]; then
docker_tag=${docker_tag}:aarch64
docker_files=("ci/docker/manylinux/Dockerfile.aarch64")
fi

for docker_file in ${docker_files[@]}; do
if [[ ${docker_file} == "ci/docker/manylinux/Dockerfile_2014_x86_64" ]]; then
docker_tag = "${docker_tag}:2014_x86_64"
fi
docker pull $docker_tag || echo
docker build --pull --cache-from $docker_tag ci/docker/manylinux -t $docker_tag -f ${docker_file}
if [[ -z "$CIRCLE_PR_NUMBER" ]]; then docker push $docker_tag; fi
docker run --rm -v `pwd`:/io $docker_tag /io/ci/build-wheels.sh
ls wheelhouse/
done
33 changes: 33 additions & 0 deletions ci/docker/manylinux/Dockerfile.2014_x86_64
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
FROM quay.io/pypa/manylinux2014_x86_64

ENV OPENSSL openssl-1.1.1g
ENV LIBSSH 0.9.5
ENV SYSTEM_LIBSSH 1

RUN yum install zlib-devel cmake3 -y

ADD libssh-${LIBSSH}.tar.xz libssh.tar.xz
ADD https://www.openssl.org/source/${OPENSSL}.tar.gz ${OPENSSL}.tar.gz
ADD krb5-1.18.2.tar.xz krb5-1.18.2.tar.xz

RUN tar -xzf ${OPENSSL}.tar.gz
# Openssl
RUN cd ${OPENSSL} && \
./config --prefix=/usr --openssldir=/usr/openssl threads shared && \
make -j6 && make install

# Kerberos
RUN cd krb5-1.18.2.tar.xz/krb5-1.18.2/src && \
./configure && \
make -j6 && \
make install

# Libssh
RUN mkdir -p build_libssh && cd build_libssh && \
cmake3 ../libssh.tar.xz/libssh-${LIBSSH} -DCMAKE_BUILD_TYPE=Release \
-DWITH_GSS_API=ON && \
make -j6 install

RUN rm -rf ${OPENSSL}* libssh build_libssh krb5-1.18.2.tar.xz

VOLUME /var/cache
34 changes: 34 additions & 0 deletions ci/docker/manylinux/Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
FROM quay.io/pypa/manylinux2014_aarch64

ENV OPENSSL openssl-1.1.1g
ENV LIBSSH 0.9.5
ENV SYSTEM_LIBSSH 1

RUN yum install epel-release -y
RUN yum install zlib-devel cmake3 -y

ADD libssh-${LIBSSH}.tar.xz libssh.tar.xz
ADD https://www.openssl.org/source/${OPENSSL}.tar.gz ${OPENSSL}.tar.gz
ADD krb5-1.18.2.tar.xz krb5-1.18.2.tar.xz

RUN tar -xzf ${OPENSSL}.tar.gz
# Openssl
RUN cd ${OPENSSL} && \
./config --prefix=/usr --openssldir=/usr/openssl threads shared && \
make -j6 && make install

# Kerberos
RUN cd krb5-1.18.2.tar.xz/krb5-1.18.2/src && \
./configure && \
make -j6 && \
make install

# Libssh
RUN mkdir -p build_libssh && cd build_libssh && \
cmake3 ../libssh.tar.xz/libssh-${LIBSSH} -DCMAKE_BUILD_TYPE=Release \
-DWITH_GSS_API=ON && \
make -j6 install

RUN rm -rf ${OPENSSL}* libssh build_libssh krb5-1.18.2.tar.xz

VOLUME /var/cache
2 changes: 1 addition & 1 deletion ci/osx-wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ ls -l wheels/*.whl
rm -f /usr/local/lib/libssh*
pip3 install -v wheels/*.whl
pwd; mkdir -p temp; cd temp; pwd
python3 -c "from ssh.session import Session; Session()" && echo "Import successfull"
python3 -c "from ssh.session import Session; Session()" && echo "Import successful"
cd ..; pwd
set +x
deactivate
Expand Down
45 changes: 0 additions & 45 deletions ci/pyenv-wheel.sh

This file was deleted.