diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..637f8c3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,40 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Tests + +on: + workflow_call: + inputs: + python-version: + required: true + type: string + extra-requirements: + required: false + type: string + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ inputs.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ inputs.python-version }} + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pytest pytest-cov codecov beautifulsoup4 ${{ inputs.extra-requirements }} -e . + - name: Test with pytest + run: | + pytest --cov=autodocsumm --cov-report=xml tests + - name: Upload codecov + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + run: | + codecov diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index d044dc6..a0afeb3 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -8,87 +8,95 @@ on: pull_request: jobs: - build: - runs-on: ubuntu-latest + build-sphinx-80plus: + name: Build + strategy: + fail-fast: false + matrix: + python-version: [ "3.10", "3.11", "3.12" ] + sphinx-version: [ + "8.0.*", "8.*" # 8.0.x and latest + ] + uses: ./.github/workflows/build.yml + with: + python-version: ${{ matrix.python-version }} + extra-requirements: '\ + "sphinx==${{ matrix.sphinx-version }}"' + + + build-legacy-sphinx-45plus: + name: Build strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9"] + python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] sphinx-version: [ - "8.0.*", - "7.0.*", "7.1.*", "7.2.*", + "7.0.*", "7.1.*", "7.2.*", "6.0.*", "5.0.*", - "4.5", "4.4", "4.3", "4.2", "4.1", "4.0.*", - "3.5.*", "3.4.*", "3.2.*", "3.1.*", "3.0.*", + "4.5.*" ] - include: - - python-version: "3.7" - sphinx-version: "" - - python-version: "3.7" - sphinx-version: "3.5" - - python-version: "3.10" - sphinx-version: "" - - python-version: "3.10" - sphinx-version: "4.5" - - python-version: "3.11" - sphinx-version: "" - - python-version: "3.11" - sphinx-version: "4.5" - - python-version: "3.12" - sphinx-version: "" - - python-version: "3.12" - sphinx-version: "4.5" exclude: - python-version: "3.8" sphinx-version: "7.2.*" - - python-version: "3.8" - sphinx-version: "8.0.*" - - python-version: "3.9" - sphinx-version: "8.0.*" + uses: ./.github/workflows/build.yml + with: + python-version: ${{ matrix.python-version }} + extra-requirements: '\ + "sphinx==${{ matrix.sphinx-version }}" + "sphinxcontrib-applehelp<1.0.8" + "sphinxcontrib-devhelp<1.0.6" + "sphinxcontrib-htmlhelp<2.0.5" + "sphinxcontrib-jsmath<1.0.1" + "sphinxcontrib-qthelp<1.0.7" + "sphinxcontrib-serializinghtml<1.1.10"' + - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Display Python version - run: python -c "import sys; print(sys.version)" - - name: Install dependencies - env: - SPHINX_VERSION: ${{ matrix.sphinx-version }} - run: | - python -m pip install --upgrade pip - - SPHINX=Sphinx - JINJA2=jinja2 - - SPHINXCONTRIB_PINNED="sphinxcontrib-applehelp<1.0.8 " - SPHINXCONTRIB_PINNED+="sphinxcontrib-devhelp<1.0.6 " - SPHINXCONTRIB_PINNED+="sphinxcontrib-htmlhelp<2.0.5 " - SPHINXCONTRIB_PINNED+="sphinxcontrib-jsmath<1.0.1 " - SPHINXCONTRIB_PINNED+="sphinxcontrib-qthelp<1.0.7 " - SPHINXCONTRIB_PINNED+="sphinxcontrib-serializinghtml<1.1.10 " - - EXTRAS="" - - if [[ $SPHINX_VERSION != "" ]]; then - SPHINX="${SPHINX}==${SPHINX_VERSION}"; - JINJA2="${JINJA2}<3.1"; - fi - if [[ $SPHINX_VERSION == 3* || $SPHINX_VERSION == 4* ]]; then - EXTRAS="{$SPHINXCONTRIB_PINNED}"; - fi - - pip install pytest pytest-cov codecov "${SPHINX}" "${JINJA2}" "${EXTRAS}" beautifulsoup4 -e . - - name: Test with pytest - run: | - pytest --cov=autodocsumm --cov-report=xml tests - - name: Upload codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - run: | - codecov + build-legacy-sphinx-40plus: + name: Build + + strategy: + fail-fast: false + matrix: + python-version: [ "3.8", "3.9" ] + sphinx-version: [ + "4.4.*", "4.3.*", "4.2.*", "4.1.*", "4.0.*" + ] + uses: ./.github/workflows/build.yml + with: + python-version: ${{ matrix.python-version }} + extra-requirements: '\ + "sphinx==${{ matrix.sphinx-version }}" + "sphinxcontrib-applehelp<1.0.8" + "sphinxcontrib-devhelp<1.0.6" + "sphinxcontrib-htmlhelp<2.0.5" + "sphinxcontrib-jsmath<1.0.1" + "sphinxcontrib-qthelp<1.0.7" + "sphinxcontrib-serializinghtml<1.1.10"' + + + build-legacy-sphinx-30plus: + name: Build + + strategy: + fail-fast: false + matrix: + python-version: [ "3.7", "3.8", "3.9" ] + sphinx-version: [ + "3.5.*", "3.4.*", "3.2.*", "3.1.*", "3.0.*", + ] + uses: ./.github/workflows/build.yml + with: + python-version: ${{ matrix.python-version }} + extra-requirements: '\ + "sphinx==${{ matrix.sphinx-version }}" + "jinja2<3.1" + "alabaster<0.7.14" + "sphinxcontrib-applehelp<1.0.8" + "sphinxcontrib-devhelp<1.0.6" + "sphinxcontrib-htmlhelp<2.0.5" + "sphinxcontrib-jsmath<1.0.1" + "sphinxcontrib-qthelp<1.0.7" + "sphinxcontrib-serializinghtml<1.1.10"'