name: Tests on: workflow_dispatch: push: branches: - "**" pull_request: branches: - "**" jobs: checks: # Using matrix-tool strategy in case we want to add more tools in the future strategy: matrix: tool: - name: sphinx-lint package: sphinx-lint command: "sphinx-lint --enable default-role --ignore .git" name: ${{ matrix.tool.name }} (${{ matrix.tool.package }}) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: lots0logs/gh-action-get-changed-files@2.2.2 id: changed_files with: token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/setup-python@v4 with: python-version: "3.12-dev" - name: Install ${{ matrix.tool.package }} run: | if [ -n "${{ matrix.tool.apt_dependencies }}" ]; then sudo apt-get update && sudo apt-get install -y ${{ matrix.tool.apt_dependencies }} fi if [ -n "${{ matrix.tool.package }}" ]; then python -m pip install --upgrade pip setuptools wheel python -m pip install ${{ matrix.tool.package }} fi - name: Run ${{ matrix.tool.package }} env: ADDED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.added), ' ') }} MODIFIED_FILES: ${{ join(fromJSON(steps.changed_files.outputs.modified), ' ') }} run: | CHANGED_PO_FILES=$(printf "%s %s\n" "$ADDED_FILES" "$MODIFIED_FILES" | tr ' ' '\n' | grep '.po$'; true) pwd tree -L 2 if [ -n "$CHANGED_PO_FILES" ] then echo "Running on:" $CHANGED_PO_FILES ${{ matrix.tool.command }} else echo "No changed po files, nothing to check." fi sphinx: name: "Generate docs (sphinx)" runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v4 with: python-version: "3.12-dev" - name: Prepare environment run: | pwd tree -L 2 git clone https://github.com/python/cpython.git venv/cpython/ python -m pip install --upgrade pip setuptools wheel python -m pip install -r requirements.txt -r venv/cpython/Doc/requirements.txt - name: Make run: make