Skip to content

Automated Benchmarks #51

Automated Benchmarks

Automated Benchmarks #51

name: Automated Benchmarks
on:
pull_request:
branches:
- develop
workflow_dispatch:
jobs:
build_wheels:
name: Build macos wheels
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install conan
uses: turtlebrowser/[email protected]
- name: Set up conan
run: |
conan profile detect
DEFAULT_PROFILE_PATH=`conan profile path default`
PROFILE_PATH=./conan-profiles/macos-14
diff ${DEFAULT_PROFILE_PATH} ${PROFILE_PATH} || true
cp ${PROFILE_PATH} ${DEFAULT_PROFILE_PATH}
conan remote add tket-libs https://quantinuumsw.jfrog.io/artifactory/api/conan/tket1-libs --index 0
- name: Build tket C++
run: conan create tket --user tket --channel stable --build=missing -o boost/*:header_only=True -o tklog/*:shared=True -o tket/*:shared=True -tf ""
- name: Build wheel
run: |
conan create recipes/pybind11
conan create recipes/pybind11_json/all --version 0.2.13
cd pytket
# Ensure wheels are compatible with MacOS 12.0 and later:
export WHEEL_PLAT_NAME=macosx_12_0_arm64
python3.11 -m pip install -U pip build delocate
python3.11 -m build
delocate-wheel -v -w "$GITHUB_WORKSPACE/wheelhouse/" "dist/pytket-"*".whl"
- name: Save Wheel
uses: actions/upload-artifact@v4
with:
name: pytket_wheel
path: wheelhouse/
Write-Env-Var:
name: Write Env Var
runs-on: macos-14
steps:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install pytket
pip install --pre --index-url https://github_actions:${{ secrets.PRIVATE_PYPI_PASS }}@cqcpythonrepository.azurewebsites.net/simple/ pytket_benchmarking
pip install typer
pip list
- name: Checkout tket
uses: actions/checkout@v4
with:
path: tket
- name: Checkout pytket-benchmarking-store
uses: actions/checkout@v4
with:
repository: CQCL/pytket-benchmarking-store
path: pytket-benchmarking-store
- name: Test write two to env variable
run: echo "RETURN_TEST=$(python tket/automated_benchmarking/automated_benchmarking.py return-test)" >> $GITHUB_ENV
- name: Test
run: echo $RETURN_TEST
# - name: Test run benchmarks
# run: python tket/automated_benchmarking/automated_benchmarking.py percentage-better pytket-benchmarking-store/benchmarking_circuits/quantum_volume temp_compiled QiskitIBMQ PytketIBMQ
- name: Test write result to env variable
run: echo "RETURN_TEST=$(python tket/automated_benchmarking/automated_benchmarking.py percentage-better pytket-benchmarking-store/benchmarking_circuits/quantum_volume temp_compiled QiskitIBMQ PytketIBMQ)" >> $GITHUB_ENV
- name: Test
run: echo $RETURN_TEST
env:
RETURN_TEST: ${{ env.RETURN_TEST }}
- name: Create comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: ${{ env.RETURN_TEST }}
env:
RETURN_TEST: ${{ env.RETURN_TEST }}
- name: Create comment
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'The results of the benchmarking are... ${{ env.RETURN_TEST }}'
})
env:
RETURN_TEST: ${{ env.RETURN_TEST }}
Run-Benchmakrs:
name: Run Benchmarks
needs: build_wheels
runs-on: macos-14
steps:
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Download Wheel
uses: actions/download-artifact@v4
with:
name: pytket_wheel
- name: Install dependencies
run: |
pip install pytket-*.whl
pip install --pre --index-url https://github_actions:${{ secrets.PRIVATE_PYPI_PASS }}@cqcpythonrepository.azurewebsites.net/simple/ pytket_benchmarking
pip install typer
pip list
- name: Checkout tket
uses: actions/checkout@v4
with:
path: tket
- name: Checkout pytket-benchmarking-store
uses: actions/checkout@v4
with:
repository: CQCL/pytket-benchmarking-store
path: pytket-benchmarking-store
# - name: Test write result to env variable
# run: |
# echo "RETURN_TEST=$(python tket/automated_benchmarking/automated_benchmarking.py return-test)" >> $GITHUB_ENV
# - name: Test
# run: echo $RETURN_TEST
# - name: Test
# run: echo $RETURN_TEST
# env:
# RETURN_TEST: ${{ env.RETURN_TEST }}
- name: Compile
run: |
python tket/automated_benchmarking/automated_benchmarking.py --help
python tket/automated_benchmarking/automated_benchmarking.py compile --help
echo "RETURN_TEST=$(python tket/automated_benchmarking/automated_benchmarking.py automated_benchmarking/automated_benchmarking.py percentage-better ../pytket-benchmarking-store/benchmarking_circuits/quantum_volume automated_benchmarking/temp_compiled QiskitIBMQ PytketIBMQ)" >> $GITHUB_ENV
- name: Create comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: ${{ env.RETURN_TEST }}
env:
RETURN_TEST: ${{ env.RETURN_TEST }}
- name: Create comment
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'The results of the benchmarking are... ${{ env.RETURN_TEST }}'
})
env:
RETURN_TEST: ${{ env.RETURN_TEST }}
- name: Save Compiled Circuits
uses: actions/upload-artifact@v4
with:
name: compiled_circuits
path: compiled_circuits/