mirror of
https://github.com/pyenv/pyenv.git
synced 2024-11-21 20:47:00 -05:00
Add CI builds that actually build Python.
For now this just builds the latest CPython, but it can be extended to include other versions. Skip with `[skip build]` in commit message.
This commit is contained in:
parent
99092d7fd1
commit
8ed7912759
3 changed files with 96 additions and 7 deletions
75
.travis.yml
75
.travis.yml
|
@ -1,13 +1,78 @@
|
||||||
sudo: false
|
# Two types of tests:
|
||||||
install: git clone --depth 1 https://github.com/sstephenson/bats.git
|
#
|
||||||
script: make test
|
# 1. shell tests run using bats
|
||||||
|
# 2. build tests also run using bats
|
||||||
|
#
|
||||||
|
# Shell tests are run unconditionally on Linux (see jobs.include).
|
||||||
|
#
|
||||||
|
# Build tests can be skipped by starting the commit message with
|
||||||
|
# '[skip build]'.
|
||||||
|
#
|
||||||
|
# Build tests are run on platforms generated from all combinations
|
||||||
|
# of keys below.
|
||||||
language: c
|
language: c
|
||||||
|
|
||||||
|
os:
|
||||||
|
- linux
|
||||||
|
- osx
|
||||||
|
|
||||||
|
dist:
|
||||||
|
- xenial
|
||||||
|
|
||||||
|
# https://docs.travis-ci.com/user/reference/osx/#macos-version
|
||||||
|
osx_image:
|
||||||
|
- xcode9.4
|
||||||
|
- xcode10
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- PYENV_NATIVE_EXT=
|
- PYTHON_BUILD_VERSION=3.8-dev
|
||||||
- PYENV_NATIVE_EXT=1
|
- PYTHON_BUILD_VERSION=3.7.2
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- date +%Y-%m-%dT%H:%M:%S
|
||||||
|
|
||||||
|
install: git clone --depth 1 https://github.com/bats-core/bats-core.git bats
|
||||||
|
|
||||||
|
# Default for auto-generated jobs.
|
||||||
|
script: make test-build
|
||||||
|
|
||||||
|
after_script: |
|
||||||
|
cat "$(ls -tr ${TMPDIR:-/tmp}/python-build.*.log | tail -1)"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
# Shell-based tests should execute every time.
|
||||||
|
- stage: test shell
|
||||||
|
script: make test
|
||||||
|
env: PYENV_NATIVE_EXT=1
|
||||||
|
after_script: []
|
||||||
|
os: linux
|
||||||
|
- stage: test shell
|
||||||
|
script: make test
|
||||||
|
env: PYENV_NATIVE_EXT=
|
||||||
|
after_script: []
|
||||||
|
os: linux
|
||||||
|
|
||||||
|
exclude:
|
||||||
|
# For each osx_image but one there should be an entry in the exclude
|
||||||
|
# list, to prevent duplicate Linux builds.
|
||||||
|
- os: linux
|
||||||
|
osx_image: xcode9.4
|
||||||
|
|
||||||
|
allow_failures:
|
||||||
|
- env: PYTHON_BUILD_VERSION=3.8-dev
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- test shell
|
||||||
|
- name: test
|
||||||
|
if: NOT (commit_message =~ /^\[skip build\]/)
|
||||||
|
|
||||||
|
# Default
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
on_success: never
|
on_success: never
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
provider: releases
|
||||||
api_key:
|
api_key:
|
||||||
|
|
7
Makefile
7
Makefile
|
@ -1,4 +1,4 @@
|
||||||
.PHONY: test
|
.PHONY: test test-build
|
||||||
|
|
||||||
# Do not pass in user flags to build tests.
|
# Do not pass in user flags to build tests.
|
||||||
unexport PYTHON_CFLAGS
|
unexport PYTHON_CFLAGS
|
||||||
|
@ -8,5 +8,8 @@ test: bats
|
||||||
PATH="./bats/bin:$$PATH" test/run
|
PATH="./bats/bin:$$PATH" test/run
|
||||||
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test
|
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test
|
||||||
|
|
||||||
|
test-build: bats
|
||||||
|
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test/build
|
||||||
|
|
||||||
bats:
|
bats:
|
||||||
git clone --depth 1 https://github.com/sstephenson/bats.git
|
git clone --depth 1 https://github.com/bats-core/bats-core.git bats
|
||||||
|
|
21
plugins/python-build/test/build/test.bats
Normal file
21
plugins/python-build/test/build/test.bats
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load ../test_helper
|
||||||
|
export PATH="$BATS_TEST_DIRNAME/../../bin:$PATH"
|
||||||
|
|
||||||
|
export PYTHON_BUILD_VERSION="${PYTHON_BUILD_VERSION:-3.8-dev}"
|
||||||
|
|
||||||
|
@test "Python build works" {
|
||||||
|
run python-build "$PYTHON_BUILD_VERSION" "$BATS_TMPDIR/dist"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
[ -e "$BATS_TMPDIR/dist/bin/python" ]
|
||||||
|
run "$BATS_TMPDIR/dist/bin/python" -V
|
||||||
|
assert_success
|
||||||
|
"$BATS_TMPDIR/dist/bin/python" -V >&3 2>&3
|
||||||
|
|
||||||
|
[ -e "$BATS_TMPDIR/dist/bin/pip" ]
|
||||||
|
run "$BATS_TMPDIR/dist/bin/pip" -V
|
||||||
|
assert_success
|
||||||
|
"$BATS_TMPDIR/dist/bin/pip" -V >&3 2>&3
|
||||||
|
}
|
Loading…
Reference in a new issue