name: QualityContol on: workflow_dispatch: pull_request: branches: - main paths-ignore: - ".devcontainer/**" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: quality-control: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup-pixi # NOTE: this isn't a comprehensive spellcheck, just common typos - name: Spellcheck if: always() uses: codespell-project/actions-codespell@v2 with: check_filenames: true check_hidden: true skip: ".git,*.js,qaqc.yml" ignore_words_list: hist,nd # borrowed from https://github.com/ProjectPythia/pythia-foundations/blob/main/.github/workflows/link-checker.yaml - name: Disable Notebook Execution Before Linkcheck if: always() shell: python run: | import yaml with open('./_config.yml') as f: data = yaml.safe_load(f) data['execute']['execute_notebooks'] = 'off' with open('./_config.yml', 'w') as f: yaml.dump(data, f) # Checking links is flaky, so continue-on-error: true - name: Check External Links timeout-minutes: 5 continue-on-error: true if: always() run: | jupyter-book build ./ --builder linkcheck