bpo-39041: Add GitHub Actions support (GH-17594)
This commit is contained in:
parent
814d687c7d
commit
a76ba362c4
|
@ -0,0 +1,85 @@
|
|||
name: Tests
|
||||
|
||||
on:
|
||||
#push:
|
||||
# branches:
|
||||
# - master
|
||||
# - 3.8
|
||||
# - 3.7
|
||||
# paths-ignore:
|
||||
# - 'Doc/**'
|
||||
# - 'Misc/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- 3.8
|
||||
- 3.7
|
||||
paths-ignore:
|
||||
- 'Doc/**'
|
||||
- 'Misc/**'
|
||||
|
||||
jobs:
|
||||
build_win32:
|
||||
name: 'Windows (x86)'
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Build CPython
|
||||
run: .\PCbuild\build.bat -e -p Win32
|
||||
- name: Display build info
|
||||
run: .\python.bat -m test.pythoninfo
|
||||
- name: Tests
|
||||
run: .\PCbuild\rt.bat -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
|
||||
|
||||
build_win_amd64:
|
||||
name: 'Windows (x64)'
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Build CPython
|
||||
run: .\PCbuild\build.bat -e -p x64
|
||||
- name: Display build info
|
||||
run: .\python.bat -m test.pythoninfo
|
||||
- name: Tests
|
||||
run: .\PCbuild\rt.bat -x64 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0
|
||||
|
||||
build_macos:
|
||||
name: 'macOS'
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Configure CPython
|
||||
run: ./configure --with-pydebug --with-openssl=/usr/local/opt/openssl --prefix=/opt/python-dev
|
||||
- name: Build CPython
|
||||
run: make -s -j4
|
||||
- name: Display build info
|
||||
run: make pythoninfo
|
||||
- name: Tests
|
||||
run: make buildbottest TESTOPTS="-j4 -uall,-cpu"
|
||||
|
||||
build_ubuntu:
|
||||
name: 'Ubuntu'
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
OPENSSL_VER: 1.1.1d
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Dependencies
|
||||
run: sudo ./.github/workflows/posix-deps-apt.sh
|
||||
- name: 'Restore OpenSSL build'
|
||||
id: cache-openssl
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
|
||||
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
|
||||
- name: Install OpenSSL
|
||||
if: steps.cache-openssl.outputs.cache-hit != 'true'
|
||||
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $OPENSSL_VER --system Linux
|
||||
- name: Configure CPython
|
||||
run: ./configure --with-pydebug --with-openssl=$PWD/multissl/openssl/$OPENSSL_VER
|
||||
- name: Build CPython
|
||||
run: make -s -j4
|
||||
- name: Display build info
|
||||
run: make pythoninfo
|
||||
- name: Tests
|
||||
run: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu"
|
|
@ -0,0 +1,89 @@
|
|||
name: Coverage
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- 3.8
|
||||
- 3.7
|
||||
paths-ignore:
|
||||
- 'Doc/**'
|
||||
- 'Misc/**'
|
||||
#pull_request:
|
||||
# branches:
|
||||
# - master
|
||||
# - 3.8
|
||||
# - 3.7
|
||||
# paths-ignore:
|
||||
# - 'Doc/**'
|
||||
# - 'Misc/**'
|
||||
|
||||
jobs:
|
||||
coverage_ubuntu:
|
||||
name: 'Ubuntu (Coverage)'
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
OPENSSL_VER: 1.1.1d
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Dependencies
|
||||
run: sudo ./.github/workflows/posix-deps-apt.sh
|
||||
- name: 'Restore OpenSSL build'
|
||||
id: cache-openssl
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
|
||||
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
|
||||
- name: Install OpenSSL
|
||||
if: steps.cache-openssl.outputs.cache-hit != 'true'
|
||||
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $OPENSSL_VER --system Linux
|
||||
- name: Configure CPython
|
||||
run: ./configure --with-openssl=$PWD/multissl/openssl/$OPENSSL_VER
|
||||
- name: Build CPython
|
||||
run: make -s -j4
|
||||
- name: Display build info
|
||||
run: make pythoninfo
|
||||
- name: 'Coverage Preparation'
|
||||
run: |
|
||||
./python -m venv .venv
|
||||
source ./.venv/bin/activate
|
||||
python -m pip install -U coverage
|
||||
python -m test.pythoninfo
|
||||
- name: 'Tests with coverage'
|
||||
run: >
|
||||
source ./.venv/bin/activate &&
|
||||
xvfb-run python -m coverage
|
||||
run --branch --pylib
|
||||
-m test
|
||||
--fail-env-changed
|
||||
-uall,-cpu
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
-x test_multiprocessing_spawn
|
||||
-x test_concurrent_futures
|
||||
|| true
|
||||
- name: 'Publish code coverage results'
|
||||
run: |
|
||||
./.venv/bin/python -m coverage xml
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
c_coverage_ubuntu:
|
||||
name: 'Ubuntu (C Coverage)'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: Install Dependencies
|
||||
run: sudo ./.github/workflows/posix-deps-apt.sh
|
||||
- name: Configure CPython
|
||||
run: ./configure
|
||||
- name: 'Build CPython and measure coverage'
|
||||
run: xvfb-run make -j4 coverage-report
|
||||
- name: 'Publish code coverage results'
|
||||
if: always()
|
||||
run: |
|
||||
make pythoninfo
|
||||
bash <(curl -s https://codecov.io/bash)
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
@ -0,0 +1,40 @@
|
|||
name: Docs
|
||||
|
||||
on:
|
||||
#push:
|
||||
# branches:
|
||||
# - master
|
||||
# - 3.8
|
||||
# - 3.7
|
||||
# paths:
|
||||
# - 'Doc/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- 3.8
|
||||
- 3.7
|
||||
paths:
|
||||
- 'Doc/**'
|
||||
- 'Misc/**'
|
||||
|
||||
jobs:
|
||||
build_doc:
|
||||
name: 'Docs'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: '3.7'
|
||||
architecture: 'x64'
|
||||
- name: 'Install build dependencies'
|
||||
run: python -m pip install sphinx==2.2.0 blurb python-docs-theme
|
||||
- name: 'Build documentation'
|
||||
run: |
|
||||
cd Doc
|
||||
make check suspicious html PYTHON=python
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: doc-html
|
||||
path: Doc/build/html
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh
|
||||
apt-get update
|
||||
|
||||
apt-get -yq install \
|
||||
build-essential \
|
||||
zlib1g-dev \
|
||||
libbz2-dev \
|
||||
liblzma-dev \
|
||||
libncurses5-dev \
|
||||
libreadline6-dev \
|
||||
libsqlite3-dev \
|
||||
libssl-dev \
|
||||
libgdbm-dev \
|
||||
tk-dev \
|
||||
lzma \
|
||||
lzma-dev \
|
||||
liblzma-dev \
|
||||
libffi-dev \
|
||||
uuid-dev \
|
||||
xvfb \
|
||||
lcov
|
|
@ -54,9 +54,9 @@ if not exist "%HTMLHELP%" (
|
|||
)
|
||||
:skiphhcsearch
|
||||
|
||||
if "%DISTVERSION%" EQU "" for /f "usebackq" %%v in (`%PYTHON% tools/extensions/patchlevel.py`) do set DISTVERSION=%%v
|
||||
if not defined DISTVERSION for /f "usebackq" %%v in (`%PYTHON% tools/extensions/patchlevel.py`) do set DISTVERSION=%%v
|
||||
|
||||
if "%BUILDDIR%" EQU "" set BUILDDIR=build
|
||||
if not defined BUILDDIR set BUILDDIR=build
|
||||
|
||||
rem Targets that don't require sphinx-build
|
||||
if "%1" EQU "" goto help
|
||||
|
@ -131,7 +131,7 @@ if exist ..\Misc\NEWS (
|
|||
)
|
||||
)
|
||||
|
||||
if NOT "%PAPER%" == "" (
|
||||
if defined PAPER (
|
||||
set SPHINXOPTS=-D latex_elements.papersize=%PAPER% %SPHINXOPTS%
|
||||
)
|
||||
if "%1" EQU "htmlhelp" (
|
||||
|
|
|
@ -51,7 +51,7 @@ class SourceDateEpochTestMeta(type(unittest.TestCase)):
|
|||
class PyCompileTestsBase:
|
||||
|
||||
def setUp(self):
|
||||
self.directory = tempfile.mkdtemp()
|
||||
self.directory = tempfile.mkdtemp(dir=os.getcwd())
|
||||
self.source_path = os.path.join(self.directory, '_test.py')
|
||||
self.pyc_path = self.source_path + 'c'
|
||||
self.cache_path = importlib.util.cache_from_source(self.source_path)
|
||||
|
|
Loading…
Reference in New Issue