Skip to content

Merge pull request #515 from tonybaloney/dependabot/github_actions/ac… #1902

Merge pull request #515 from tonybaloney/dependabot/github_actions/ac…

Merge pull request #515 from tonybaloney/dependabot/github_actions/ac… #1902

Workflow file for this run

name: Compile and test C++ package
on:
push:
branches: [ develop/main, develop/3.10 ]
pull_request:
branches: [ develop/main, develop/3.10 ]
env:
BUILD_TYPE: Release
jobs:
build-linux:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ["3.10"]
dot-net-version: [ "7.0.100" ]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install CLR requirements
run: |
sudo apt-get -y update
sudo apt-get install -y cmake llvm-9 clang-9 autoconf automake \
libtool build-essential python curl git lldb-6.0 liblldb-6.0-dev \
libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev \
libssl-dev libnuma-dev libkrb5-dev zlib1g-dev
- uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dot-net-version }}
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TESTS=ON
- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
- name: Build Python Package
shell: bash
run: python -m pip install --upgrade pip && pip install .
- name: Run C++ unit tests
working-directory: ${{runner.workspace}}/build
shell: bash
run: ./unit_tests --out test.log -s --use-colour yes
- name: Setup Python tests
shell: bash
run: pip install -r Tests/requirements_test.txt
- name: Run pytest tests (level 0)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0
- name: Run pytest tests (level 1)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1
- name: Run pytest tests (level 2)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 2
- name: Run pytest tests (level 0) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0 --external
- name: Run pytest tests (level 1) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1 --external
- name: Run smoke tests
shell: bash
run: |
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 0
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1 --pgc
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 2
continue-on-error: true
- name: Test IPython REPL
shell: bash
run: |
pip install ipython
python -X dev -m IPython -c="import pyjion;pyjion.enable();a=1+1;a"
- name: Test module entry point
shell: bash
run: |
python -m pyjion -m calendar
python -m pyjion -m calendar 1999
python -m pyjion Tests/hello.py
pyjion -m calendar 1999
pyjion Tests/hello.py
- name: Install scikit-build for wheel
shell: bash
run: |
python -m pip install -U scikit-build
- name: Run full test suite
shell: bash
run: python -X dev -q Tests/run_cpython_tests.py -f Tests/python_tests.txt -o 1
continue-on-error: true
timeout-minutes: 30
build-macos-11:
runs-on: macos-11
strategy:
matrix:
python-version: ["3.10"]
dot-net-version: [ "7.0.100" ]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dot-net-version }}
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TESTS=ON
- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
- name: Build Python Package
shell: bash
run: python -m pip install --upgrade pip && pip install .
- name: Run C++ unit tests
working-directory: ${{runner.workspace}}/build
shell: bash
run: ./unit_tests --out test.log -s --use-colour yes
- name: Setup Python tests
shell: bash
run: pip install -r Tests/requirements_test.txt
- name: Run pytest tests (level 0)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0
- name: Run pytest tests (level 1)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1
- name: Run pytest tests (level 2)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 2
- name: Run pytest tests (level 0) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0 --external
- name: Run pytest tests (level 1) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1 --external
- name: Test module entry point
shell: bash
run: |
python -m pyjion -m calendar
python -m pyjion -m calendar 1999
python -m pyjion Tests/hello.py
pyjion -m calendar 1999
pyjion Tests/hello.py
- name: Run smoke tests
shell: bash
run: |
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 0
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1 --pgc
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 2
continue-on-error: true
- name: Test IPython REPL
shell: bash
run: |
pip install ipython
python -X dev -m IPython -c="import pyjion;pyjion.enable();a=1+1;a"
- name: Run full test suite
shell: bash
run: python -X dev -q Tests/run_cpython_tests.py -f Tests/python_tests_macos11.txt -o 1
continue-on-error: true
timeout-minutes: 30
build-windows:
runs-on: windows-latest
strategy:
matrix:
python-version: ["3.10"]
dot-net-version: [ "7.0.100" ]
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dot-net-version }}
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON
- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config Release
- name: Install build deps
shell: bash
run: python -m pip install -U scikit-build
- name: Build Python Package
shell: bash
run: python setup.py build
- name: Install Python Package
shell: bash
run: python setup.py install
- name: Run C++ unit tests
working-directory: ${{runner.workspace}}/build/Release
run: |
cp c:\Users\runneradmin\AppData\Local\Microsoft\dotnet\shared\Microsoft.NETCore.App\7.0.0\clrjit.dll .
.\unit_tests.exe
- name: Setup Python tests
shell: bash
run: pip install -r Tests/requirements_test.txt
- name: Run pytest tests (level 0)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0
- name: Run pytest tests (level 1)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1
- name: Run pytest tests (level 2)
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 2
- name: Run pytest tests (level 0) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 0 --external
- name: Run pytest tests (level 1) + external
shell: bash
run: python -X dev -m pytest Tests/ -v --opt-level 1 --external
- name: Test module entry point
shell: bash
run: |
python -m pyjion -m calendar
python -m pyjion -m calendar 1999
python -m pyjion Tests/hello.py
pyjion -m calendar 1999
pyjion Tests/hello.py
- name: Run smoke tests
shell: bash
run: |
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 0
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 1 --pgc
python -X dev -q Tests/run_cpython_tests.py -f Tests/python_smoke_tests.txt -o 2
continue-on-error: true
env:
PYTHONIOENCODING: utf-8
- name: Run full test suite
shell: bash
run: python -X dev -q Tests/run_cpython_tests.py -f Tests/python_tests_win.txt -o 1
continue-on-error: true
timeout-minutes: 30
env:
PYTHONIOENCODING: utf-8
- name: Test IPython REPL
shell: bash
run: |
pip install ipython
python -X dev -m IPython -c="import pyjion;pyjion.enable();a=1+1;a"