Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:
jobs:
build-sdist:
name: 🐍 Packaging
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@v1.15

# Builds wheels on all supported platforms using cibuildwheel.
# The wheels are uploaded as GitHub artifacts `dev-cibw-*` or `cibw-*`, depending on whether
Expand All @@ -31,7 +31,7 @@ jobs:
windows-2022,
windows-11-arm,
]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
setup-z3: true
Expand Down
32 changes: 16 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ concurrency:
jobs:
change-detection:
name: πŸ” Change
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@v1.15

cpp-tests-ubuntu:
name: πŸ‡¨β€Œ Test 🐧
Expand All @@ -30,7 +30,7 @@ jobs:
- runs-on: ubuntu-24.04
compiler: gcc
config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -51,7 +51,7 @@ jobs:
- runs-on: macos-14
compiler: clang
config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -69,7 +69,7 @@ jobs:
runs-on: [windows-2022, windows-11-arm]
compiler: [msvc]
config: [Release]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -88,7 +88,7 @@ jobs:
[ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm]
compiler: [gcc, clang, clang-19, clang-20]
config: [Release, Debug]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -115,7 +115,7 @@ jobs:
# see https://github.com/munich-quantum-toolkit/qmap/issues/704
- compiler: gcc-15
config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -137,7 +137,7 @@ jobs:
exclude:
# see https://github.com/munich-quantum-toolkit/qmap/issues/704
- config: Debug
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
compiler: ${{ matrix.compiler }}
Expand All @@ -148,7 +148,7 @@ jobs:
name: πŸ‡¨β€Œ Coverage
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-tests)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-coverage.yml@v1.15
with:
setup-z3: true
permissions:
Expand All @@ -160,7 +160,7 @@ jobs:
name: πŸ‡¨β€Œ Lint
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cpp-linter)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@v1.15
with:
clang-version: 20
cmake-args: -DBUILD_MQT_QMAP_BINDINGS=ON
Expand All @@ -178,7 +178,7 @@ jobs:
matrix:
runs-on:
[ubuntu-24.04, ubuntu-24.04-arm, macos-13, macos-14, windows-2022]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
setup-z3: true
Expand All @@ -187,7 +187,7 @@ jobs:
name: 🐍 Coverage
needs: [change-detection, python-tests]
if: fromJSON(needs.change-detection.outputs.run-python-tests)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@v1.15
permissions:
contents: read
id-token: write
Expand All @@ -204,7 +204,7 @@ jobs:
exclude:
# see https://github.com/munich-quantum-toolkit/qmap/issues/703
- runs-on: macos-15
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
setup-z3: true
Expand All @@ -213,23 +213,23 @@ jobs:
name: 🐍 Lint
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-python-tests)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@v1.15
with:
setup-z3: true

code-ql:
name: πŸ“ CodeQL
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-code-ql)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-code-ql.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-code-ql.yml@v1.15
with:
setup-z3: true

build-sdist:
name: πŸš€ CD
needs: change-detection
if: fromJSON(needs.change-detection.outputs.run-cd)
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@v1.15

build-wheel:
name: πŸš€ CD
Expand All @@ -247,7 +247,7 @@ jobs:
windows-2022,
windows-11-arm,
]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@v1.15
with:
runs-on: ${{ matrix.runs-on }}
setup-z3: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-mqt-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ concurrency:
jobs:
update-mqt-core:
name: ⬆️ Update MQT Core
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@v1.14
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@v1.15
with:
update-to-head: ${{ github.event.inputs.update-to-head == 'true' }}
secrets:
Expand Down
95 changes: 10 additions & 85 deletions .github/workflows/upstream.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,100 +12,25 @@ concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

permissions:
contents: read
issues: write # Needed to create/update issues

jobs:
qiskit-upstream-tests:
name: πŸβš›οΈ
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-14, windows-2022]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream.yml@v1.14
runs-on: [ubuntu-24.04, macos-14, windows-2022]
uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@v1.15
with:
runs-on: ${{ matrix.os }}
runs-on: ${{ matrix.runs-on }}
setup-z3: true

create-issue-on-failure:
name: Create issue on failure
if: ${{ always() }}
needs: qiskit-upstream-tests
runs-on: ubuntu-latest
steps:
- name: Get latest Qiskit commit
id: qiskit-commit
run: |
QISKIT_COMMIT=$(curl -s https://api.github.com/repos/Qiskit/qiskit/commits/main | jq -r '.sha')
QISKIT_COMMIT_URL="https://github.com/Qiskit/qiskit/commit/${QISKIT_COMMIT}"
QISKIT_COMMIT_DATE=$(curl -s https://api.github.com/repos/Qiskit/qiskit/commits/${QISKIT_COMMIT} | jq -r '.commit.author.date')
echo "url=${QISKIT_COMMIT_URL}" >> $GITHUB_OUTPUT
echo "date=${QISKIT_COMMIT_DATE}" >> $GITHUB_OUTPUT

- name: Create or update issue
if: ${{ needs.qiskit-upstream-tests.result != 'success' && needs.qiskit-upstream-tests.result != 'cancelled' }}
uses: actions/github-script@v7
with:
github-token: ${{ github.token }}
script: |
const runId = context.runId;
const workflowRunUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
const testResult = '${{ needs.qiskit-upstream-tests.result }}';
const qiskitCommitUrl = '${{ steps.qiskit-commit.outputs.url }}';
const qiskitCommitDate = '${{ steps.qiskit-commit.outputs.date }}';

// Search for existing open issues with a specific title pattern
const issueTitle = "❌ Qiskit Upstream Tests Failure";

const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
});

// Find matching issues
const matchingIssue = issues.data.find(issue => issue.title === issueTitle);

const today = new Date().toISOString().split('T')[0];
const body = `## Qiskit Upstream Tests Failed on ${today}

The weekly Qiskit upstream test has failed.

### Workflow Details

- **Workflow Run**: [View Logs and Details](${workflowRunUrl})
- **Result**: \`${testResult}\`
- **Triggered by**: ${context.eventName}
- **Qiskit Commit Tested**: ${qiskitCommitUrl} (${qiskitCommitDate})

Please investigate and fix this issue to ensure compatibility with the latest version of Qiskit.

> This issue was automatically generated by a GitHub Action.
`;

// If we found an existing issue, update it, otherwise create a new one
if (matchingIssue) {
// Add a comment with the new failure
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: matchingIssue.number,
body: `New failure detected on ${today}.
- [View workflow run](${workflowRunUrl})
- **Qiskit Commit Tested**: ${qiskitCommitUrl} (${qiskitCommitDate})`
});

console.log(`Updated existing issue #${matchingIssue.number}`);
} else {
// Create a new issue
const newIssue = await github.rest.issues.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: issueTitle,
body: body,
labels: ['bug', 'python', 'dependencies']
});

console.log(`Created new issue #${newIssue.data.number}`);
}
if: ${{ always() }}
uses: munich-quantum-toolkit/workflows/.github/workflows/[email protected]
with:
tests-result: ${{ needs.qiskit-upstream-tests.result }}
permissions:
contents: read
issues: write # Needed to create/update issues
Loading