Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 22 additions & 10 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,26 +16,30 @@ jobs:
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v3

- name: Update package repos
run: sudo apt update
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: 3.8
- name: Install ninja
run: sudo apt install -y ninja-build
run: sudo apt install -y ninja-build libbz2-dev liblzma-dev libreadline-dev

- name: Configure CMake
run: |
cmake -GNinja -B ${{github.workspace}}/build \
uv run cmake -GNinja -B ${{github.workspace}}/build \
-DCMAKE_TOOLCHAIN_FILE=util/linux.cmake \
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

- name: Build
working-directory: ${{github.workspace}}/build
run: ninja -j4
run: uv run ninja -j4

- name: Run C++ tests with Skybison
working-directory: ${{github.workspace}}/build
Expand All @@ -55,7 +59,7 @@ jobs:

benchmark:
if: ${{ github.event_name == 'pull_request' }}
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -64,6 +68,10 @@ jobs:
run: sudo apt update
- name: Install tools
run: sudo apt install -y ninja-build ccache valgrind
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: 3.8
- name: Quickbench
working-directory: ${{github.workspace}}
run: |
Expand Down Expand Up @@ -97,7 +105,7 @@ jobs:
./benchmarks/run.py --tool callgrind --json \
--interpreter "$PREV_BUILD" --interpreter-name python_base --path $(pwd)/benchmarks/benchmarks \
--interpreter "$CURR_BUILD" --interpreter-name python_new --path $(pwd)/benchmarks/benchmarks \
--interpreter $(which python3.8) --interpreter-name fbcode-cpython --path $(pwd)/benchmarks/benchmarks \
--interpreter "uv run python3.8" --interpreter-name fbcode-cpython --path $(pwd)/benchmarks/benchmarks \
| tee benchmark-results.json
- name: Format benchmark results
working-directory: ${{github.workspace}}
Expand All @@ -117,7 +125,7 @@ jobs:
})

run-cpython-tests:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04

steps:
- uses: actions/checkout@v3
Expand All @@ -126,17 +134,21 @@ jobs:
run: sudo apt update
- name: Install ninja
run: sudo apt install -y ninja-build
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: 3.8

- name: Configure CMake
run: |
cmake -GNinja -B ${{github.workspace}}/build \
uv run cmake -GNinja -B ${{github.workspace}}/build \
-DCMAKE_TOOLCHAIN_FILE=util/linux.cmake \
-DCMAKE_BUILD_TYPE=DebugOpt \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++

- name: Build
working-directory: ${{github.workspace}}/build
run: ninja -j4 cpython cpython-tests
run: uv run ninja -j4 cpython cpython-tests

- name: Run C++ tests with CPython
working-directory: ${{github.workspace}}
Expand All @@ -147,7 +159,7 @@ jobs:
run: PYRO_BUILD_DIR="build" ./util/python_tests_cpython.sh

lint:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
# TODO(max): Install and run Black on Python code
steps:
- name: Update package repos
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ else()
OUTPUT
${FROZEN_MODULE_OUTPUT}
COMMAND
/usr/bin/python3.8 util/freeze_modules.py ${FROZEN_MODULE_OUTPUT_DIR}
uv run python3.8 util/freeze_modules.py ${FROZEN_MODULE_OUTPUT_DIR}
${FROZEN_MODULE_INPUT}
WORKING_DIRECTORY
${CMAKE_SOURCE_DIR}
Expand Down
Loading