Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
gaoqiong
pybind11
Commits
e450ea05
Commit
e450ea05
authored
Jul 26, 2020
by
Henry Schreiner
Committed by
Henry Schreiner
Jul 27, 2020
Browse files
ci: add docker build to GHA
parent
2fbbd510
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
96 deletions
+54
-96
.github/workflows/ci.yml
.github/workflows/ci.yml
+34
-1
.travis.yml
.travis.yml
+20
-95
No files found.
.github/workflows/ci.yml
View file @
e450ea05
...
@@ -46,7 +46,7 @@ jobs:
...
@@ -46,7 +46,7 @@ jobs:
-
os
:
windows
-
os
:
windows
python
:
3.9-dev
python
:
3.9-dev
name
:
Python
${{ matrix.python }} on ${{ matrix.os }}
name
:
🐍
${{ matrix.python }} on ${{ matrix.os }}
runs-on
:
${{ matrix.os }}-latest
runs-on
:
${{ matrix.os }}-latest
steps
:
steps
:
...
@@ -256,3 +256,36 @@ jobs:
...
@@ -256,3 +256,36 @@ jobs:
-
name
:
Interface test
-
name
:
Interface test
run
:
cmake --build build --target test_cmake_build
run
:
cmake --build build --target test_cmake_build
install-classic
:
name
:
"
🐍
3.5
32-bit
Linux
install"
runs-on
:
ubuntu-latest
container
:
i386/debian:stretch
steps
:
-
uses
:
actions/checkout@v1
-
name
:
Install requirements
run
:
|
apt-get update
apt-get install -y git make cmake g++ libeigen3-dev python3-dev python3-pip python3-pytest
-
name
:
Configure for install
run
:
cmake -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0 .
-
name
:
Make and install
run
:
make install
-
name
:
Copy tests to new directory
run
:
cp -a tests /pybind11-tests
-
name
:
Make a new test directory
run
:
mkdir /build-tests
-
name
:
Configure tests
run
:
cmake -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") ../pybind11-tests -DPYBIND11_WERROR=ON
working-directory
:
/build-tests
-
name
:
Run tests
run
:
make pytest -j
2
working-directory
:
/build-tests
.travis.yml
View file @
e450ea05
...
@@ -40,26 +40,6 @@ matrix:
...
@@ -40,26 +40,6 @@ matrix:
# Barebones build
# Barebones build
cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) .
cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) .
make pytest -j 2 && make cpptest -j 2
make pytest -j 2 && make cpptest -j 2
# Build in 32-bit mode and tests against the CMake-installed version
-
os
:
linux
dist
:
trusty
services
:
docker
env
:
DOCKER=i386/debian:stretch PYTHON=3.5 CPP=14 GCC=6 INSTALL=1
name
:
Python 3.5, c++14, gcc 6, 32-bit
script
:
-
|
# Consolidated 32-bit Docker Build + Install
set -ex
$SCRIPT_RUN_PREFIX sh -c "
set -ex
cmake ${CMAKE_EXTRA_ARGS} -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0 .
make install
cp -a tests /pybind11-tests
mkdir /build-tests && cd /build-tests
cmake ../pybind11-tests ${CMAKE_EXTRA_ARGS} -DPYBIND11_WERROR=ON
make pytest -j 2"
set +ex
cache
:
cache
:
directories
:
directories
:
-
$HOME/.local/bin
-
$HOME/.local/bin
...
@@ -80,90 +60,35 @@ before_install:
...
@@ -80,90 +60,35 @@ before_install:
-
|
-
|
# Initialize environment
# Initialize environment
set -ex
set -ex
if [ -n "$DOCKER" ]; then
PY_CMD=python$PYTHON
docker pull $DOCKER
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
if [ "$PY" = "3" ]; then
containerid=$(docker run --detach --tty \
brew update && brew unlink python@2 && (brew upgrade python || brew install python)
--volume="$PWD":/pybind11 --workdir=/pybind11 \
else
--env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
--env=GCC_COLORS=\ \
$DOCKER)
SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
$SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
else
PY_CMD=python$PYTHON
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
if [ "$PY" = "3" ]; then
brew update && brew unlink python@2 && (brew upgrade python || brew install python)
else
curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
fi
fi
if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
$PY_CMD -m ensurepip --user
fi
fi
$PY_CMD --version
$PY_CMD -m pip install --user --upgrade pip wheel
fi
fi
if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
$PY_CMD -m ensurepip --user
fi
$PY_CMD --version
$PY_CMD -m pip install --user --upgrade pip wheel
set +ex
set +ex
install
:
install
:
-
|
-
|
# Install dependencies
# Install dependencies
set -ex
set -ex
cmake --version
cmake --version
if [ -n "$DOCKER" ]; then
if [ -n "$DEBUG" ]; then
PY_DEBUG="python$PYTHON-dbg python$PY-scipy-dbg"
CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE=/usr/bin/python${PYTHON}dm"
fi
$SCRIPT_RUN_PREFIX sh -c "for s in 0 15; do sleep \$s; \
apt-get -qy --no-install-recommends install \
$PY_DEBUG python$PYTHON-dev python$PY-pytest python$PY-scipy \
libeigen3-dev libboost-dev cmake make ${EXTRA_PACKAGES} && break; done"
else
export NPY_NUM_BUILD_JOBS=2
export NPY_NUM_BUILD_JOBS=2
local PIP_CMD=""
local PIP_CMD=""
echo "Installing pytest, numpy, scipy..."
echo "Installing pytest, numpy, scipy..."
$PY_CMD -m pip install --user --upgrade pytest numpy scipy
$PY_CMD -m pip install --user --upgrade pytest numpy scipy
echo "done."
echo "done."
mkdir eigen
mkdir eigen
curl -fsSL https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2 | \
curl -fsSL https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2 | \
tar --extract -j --directory=eigen --strip-components=1
tar --extract -j --directory=eigen --strip-components=1
export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+$CMAKE_INCLUDE_PATH:}$PWD/eigen"
export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+$CMAKE_INCLUDE_PATH:}$PWD/eigen"
fi
set +ex
script
:
-
|
# CMake Configuration
set -ex
$SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS} \
-DPYBIND11_PYTHON_VERSION=$PYTHON \
-DPYBIND11_CPP_STANDARD=$CPP \
-DPYBIND11_WERROR=${WERROR:-ON} \
-DDOWNLOAD_CATCH=${DOWNLOAD_CATCH:-ON} \
.
set +ex
-
|
# pytest
set -ex
$SCRIPT_RUN_PREFIX make pytest -j 2 VERBOSE=1
set +ex
-
|
# cpptest
set -ex
$SCRIPT_RUN_PREFIX make cpptest -j 2
set +ex
-
|
# CMake Build Interface
set -ex
if [ -n "$CMAKE" ]; then $SCRIPT_RUN_PREFIX make test_cmake_build; fi
set +ex
set +ex
after_failure
:
cat tests/test_cmake_build/*.log*
after_failure
:
cat tests/test_cmake_build/*.log*
after_script
:
-
|
# Cleanup (Docker)
set -ex
if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi
set +ex
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment