Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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