build(deps): bump actions/cache from 2.1.4 to 3.3.2 #44
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
# bpo-40548: "paths-ignore" is not used to skip documentation-only PRs, because | |
# it prevents to mark a job as mandatory. A PR cannot be merged if a job is | |
# mandatory but not scheduled because of "paths-ignore". | |
on: | |
push: | |
branches: | |
- master | |
- 3.9 | |
- 3.8 | |
- 3.7 | |
pull_request: | |
branches: | |
- master | |
- 3.9 | |
- 3.8 | |
- 3.7 | |
jobs: | |
check_source: | |
name: 'Check for source changes' | |
runs-on: ubuntu-latest | |
outputs: | |
run_tests: ${{ steps.check.outputs.run_tests }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check for source changes | |
id: check | |
run: | | |
if [ -z "$GITHUB_BASE_REF" ]; then | |
echo '::set-output name=run_tests::true' | |
else | |
git fetch origin $GITHUB_BASE_REF --depth=1 | |
# git diff "origin/$GITHUB_BASE_REF..." (3 dots) may be more | |
# reliable than git diff "origin/$GITHUB_BASE_REF.." (2 dots), | |
# but it requires to download more commits (this job uses | |
# "git fetch --depth=1"). | |
# | |
# git diff "origin/$GITHUB_BASE_REF..." (3 dots) works with Git | |
# 2.26, but Git 2.28 is stricter and fails with "no merge base". | |
# | |
# git diff "origin/$GITHUB_BASE_REF.." (2 dots) should be enough on | |
# GitHub, since GitHub starts by merging origin/$GITHUB_BASE_REF | |
# into the PR branch anyway. | |
# | |
# https://github.com/python/core-workflow/issues/373 | |
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qvE '(\.rst$|^Doc|^Misc)' && echo '::set-output name=run_tests::true' || true | |
fi | |
check_generated_files: | |
name: 'Check if generated files are up to date' | |
runs-on: ubuntu-latest | |
needs: check_source | |
if: needs.check_source.outputs.run_tests == 'true' | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
- name: Install Dependencies | |
run: sudo ./.github/workflows/posix-deps-apt.sh | |
- name: Build CPython | |
run: | | |
# Build Python with the libpython dynamic library | |
./configure --with-pydebug --enable-shared | |
make -j4 regen-all | |
make regen-stdlib-module-names | |
- name: Check for changes | |
run: | | |
changes=$(git status --porcelain) | |
# Check for changes in regenerated files | |
if ! test -z "$changes" | |
then | |
echo "Generated files not up to date. Perhaps you forgot to run make regen-all ;)" | |
echo "$changes" | |
exit 1 | |
fi | |
- name: Check exported libpython symbols | |
run: make smelly | |
- name: Check limited ABI symbols | |
run: make check-limited-abi | |
build_win32: | |
name: 'Windows (x86)' | |
runs-on: windows-latest | |
needs: check_source | |
if: needs.check_source.outputs.run_tests == 'true' | |
steps: | |
- uses: actions/checkout@v2 | |
- 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 -p Win32 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 | |
build_win_amd64: | |
name: 'Windows (x64)' | |
runs-on: windows-latest | |
needs: check_source | |
if: needs.check_source.outputs.run_tests == 'true' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Register MSVC problem matcher | |
run: echo "::add-matcher::.github/problem-matchers/msvc.json" | |
- 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 -p x64 -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 | |
build_macos: | |
name: 'macOS' | |
runs-on: macos-latest | |
needs: check_source | |
if: needs.check_source.outputs.run_tests == 'true' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Configure CPython | |
run: ./configure --with-pydebug --with-openssl=/usr/local/opt/openssl --prefix=/opt/python-dev | |
- name: Build CPython | |
run: make -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 | |
needs: check_source | |
if: needs.check_source.outputs.run_tests == 'true' | |
env: | |
OPENSSL_VER: 1.1.1f | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Register gcc problem matcher | |
run: echo "::add-matcher::.github/problem-matchers/gcc.json" | |
- name: Install Dependencies | |
run: sudo ./.github/workflows/posix-deps-apt.sh | |
- name: 'Restore OpenSSL build' | |
id: cache-openssl | |
uses: actions/cache@v3.3.2 | |
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 -j4 | |
- name: Display build info | |
run: make pythoninfo | |
- name: Tests | |
run: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu" |