Separate repo-specific functionality from nb-tester #7566
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
# This code is a Qiskit project. | |
# | |
# (C) Copyright IBM 2023. | |
# | |
# This code is licensed under the Apache License, Version 2.0. You may | |
# obtain a copy of this license in the LICENSE file in the root directory | |
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0. | |
# | |
# Any modifications or derivative works of this code must retain this | |
# copyright notice, and modified files need to carry a notice indicating | |
# that they have been altered from the originals. | |
name: Lint | |
on: [pull_request, merge_group] | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'Qiskit' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: File metadata | |
run: npm run check:metadata | |
- name: Check images | |
run: npm run check:images | |
- name: Spellcheck | |
run: npm run check:spelling | |
- name: Check Qiskit bot config | |
run: npm run check:qiskit-bot | |
- name: Check Patterns index | |
run: npm run check:patterns-index | |
- name: Internal link checker | |
run: npm run check:internal-links | |
- name: Check orphaned pages | |
run: npm run check:orphan-pages | |
- name: Formatting | |
run: npm run check:fmt | |
- name: Typecheck | |
run: npm run typecheck | |
- name: Infrastructure tests | |
run: npm test | |
- name: Get all changed docs files | |
id: all-changed-files | |
uses: tj-actions/changed-files@af2816c65436325c50621100d67f6e853cd1b0f1 | |
with: | |
files: docs/**/*.{md,mdx,ipynb} | |
separator: "\n" | |
write_output_files: true | |
- name: Pull preview image | |
if: steps.all-changed-files.outputs.any_changed == 'true' | |
run: ./start --pull-only | |
- name: Start local Docker preview | |
if: steps.all-changed-files.outputs.any_changed == 'true' | |
run: | | |
./start --apis & | |
sleep 1 | |
- name: Check that pages render | |
if: steps.all-changed-files.outputs.any_changed == 'true' | |
run: | | |
npm run check:pages-render -- --from-file .github/outputs/all_changed_files.txt | |
- name: Setup Python environment | |
uses: ./.github/actions/set-up-notebook-testing | |
- name: Check all notebooks are listed in the config file | |
run: python scripts/ci/check-all-notebooks-are-tested.py | |
- name: Lint notebooks | |
shell: python | |
run: | | |
import subprocess, sys | |
try: | |
subprocess.run(["tox", "-e", "lint"], check=True) | |
except: | |
print( | |
"Error while linting notebook. " | |
"To fix, install tox and run `tox -e fix`." | |
) | |
sys.exit(1) |