diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..e7685b66 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,121 @@ +name: build + +on: + push: + pull_request: + +jobs: + build: + name: Build and Test Package + strategy: + matrix: + version: + - '3.8' + - '3.9' + - '3.10' + - '3.11' + - '3.12' + os: [ubuntu-latest, windows-latest] + runs-on: ${{ matrix.os }} + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.version }} + + - name: Install package + run: pip install . + + - name: Run tests + run: python -m unittest discover -v + + - name: Build documentation + run: |- + mkdir html + git fetch --all + python -I -m sphinx_multiversion -W docs html + + - name: Upload the Docs + uses: actions/upload-artifact@v4 + if: matrix.os == 'ubuntu-latest' && matrix.version == '3.12' + with: + name: docs + path: html/ + + - name: Install pypa/build + run: pip install build + + - name: Build a binary wheel and a source tarball + run: python3 -m build + + - name: Store the distribution packages + if: matrix.os == 'ubuntu-latest' && matrix.version == '3.12' + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + deploy-docs: + name: Deploy Docs to GitHub Pages + runs-on: ubuntu-latest + needs: [build] + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action + with: + artifact_name: docs + + deploy-testpypi: + name: Deploy Distribution to Test PyPI + if: ${{ ! startsWith(github.ref, 'refs/tags/') }} + needs: [build] + runs-on: ubuntu-latest + environment: + name: testpypi + url: https://test.pypi.org/p/sphinx-multiversion + permissions: + id-token: write + + steps: + - name: Download the Distributions + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish Distributions to Test PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + deploy-pypi: + name: Deploy Distribution to PyPI + if: startsWith(github.ref, 'refs/tags/') + needs: [build] + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/sphinx-multiversion + permissions: + id-token: write + + steps: + - name: Download the Distributions + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish Distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9cce9113..00000000 --- a/.travis.yml +++ /dev/null @@ -1,96 +0,0 @@ -os: linux -dist: xenial -language: python - -jobs: - include: - - name: "Ubuntu / Python 3.6" - stage: Testing - python: 3.6 - - name: "Ubuntu / Python 3.7" - stage: Testing - python: 3.7 - - name: "Windows / Python 3.6" - stage: Testing - os: windows - language: shell - before_install: - - choco install python --version 3.6.8 - env: - - PATH=/c/Python36:/c/Python36/Scripts:$PATH - - SKIP=check-executables-have-shebangs - - name: "Windows / Python 3.7" - stage: Testing - os: windows - language: shell - before_install: - - choco install python --version 3.7.8 - env: - - PATH=/c/Python37:/c/Python37/Scripts:$PATH - - SKIP=check-executables-have-shebangs - - name: "Ubuntu / Python 3.7" - stage: Deployment - if: type != pull_request AND (branch = master OR tag IS present) - python: 3.7 - before_deploy: - - touch html/.nojekyll - - cp assets/gh-pages-redirect.html html/index.html - deploy: - # Deploy to PyPI - - provider: pypi - username: "__token__" - password: - secure: "0bFhY80KT5zp5wpsQwmBdHNvrC1aXnCUnL268UBb5bcVrTQ/cVr08CPVEZLefRU96CCqCZHCQPh1iP9DCtPEszB3XI0pVydoNJ9Fei9ccHI6bJBtfpLnTwlyygiBiTT3uNlal+/+videWqhDXAs2EHZAQn4L41Na6h1pHBoTu+V8KIJinNJccgiUXeeHdDc4lWCVKU0GfeKtzvgmFZq9B1w7jo+VnOQFKYH3rS80u1xkTrWNiVb3vdt+36PHssNXv5XI9kULsE+ofSdKIwYd7zGxs3ouw+LYhEM6QpDp1ERITAPWhdrY6DTTVdatnClTlzvxRMiqbeKmx/cYIx1x2aXqGxQo0UIcjK2N647ZG6lQAmJnRBc71CJvzGOFQQ+PNnlRlUcOmhnqr8K4bHDhe6Cf1PAFW6SCZvZ8ruXRV726FhRqMzmE/fJwtOY97F0BHJWwBAjbTdDM0J9Hph68YjkMcB96/bRTvGqkwVZTVqPtGppa3uRX2+ljt9pFY3j/jsk77mTYoY5VJrDB8lQSK7dzn8U/vg6q7lbRA5QfYXVIc77/7w29BFgVKv418LlfEh9zlq2/mB0+EX9BGEtEFNMEDzmXvJpEMQ2isDhfACKLO6B8opkfNEgUKhEpUBOTKf0VNSTVdQy1VL+jnXk7SzHo6ncb7PCMMK/yWmlCsvc=" - distributions: "sdist bdist_wheel" - skip_existing: true - on: - branch: master - repo: Holzhaus/sphinx-multiversion - tags: true - # Deploy to Github Releases - - provider: releases - token: - secure: "tAwp3NTqbvig1wU0hwkN7aWOAQYnpS12zsAlBc/ud05cYrjrBIjjFltX/1C0tgxxxJ11zdAhTjgUfYFrWbRXJ5hHptyD8fTa8RXfJZ2KuTx44aEHSyNHtl8YbwlXXr9hGjhrUHUulNghpFCAwNgg6oONbocQ3teW6maO7ByLUmO/RbNnligK1iQW6GPHovOg1iTbsZLVhriP2e2/JFRxq5rdnxArNLzwLhg8L4QAuc6YX3gnI1Z2xuBtpgQhNfL5S+hMuKOwONpdMQDYgXD7QbPA0pqSYQRf81vd+/FtZqNnHHku0POsoLLMkscalXxa1AbznvH9vg9nwO0J20XNZ1Mg6BFLpDwPzqLhCAwmeFcz+k78m+3x9bIhS27ps0XCgg0VxjM4Rvaabfm7J9h1aIteZf4oGS+1Er8fK6ejOeGI+tZu/5YXDhpS6hyK6gXey7Ep3SGF5oqrcu80gBrCGkWXrADMogarL6RbcZV2vrYkm5kBorcUA4s3nU2fV5UUnCg83fdlY70kmrNt3Im83ndSH3jOyTDXITjHCDN6+GFjd1eP0h8tcwiGPtVs2JGolSmqq/AzjDqY2CfgwccBDg6MF4gbcgJQdzZ11j/5cH9SNoHN6/V4869vO28XbwTKqbgsKpuajmbKVEqIlGTi2zylgzNbxtySTL0tnZvyO4w=" - name: "$TRAVIS_TAG" - release_notes: "Release $TRAVIS_TAG" - draft: false - skip_cleanup: true - file_glob: true - file: dist/* - overwrite: true - on: - branch: master - repo: Holzhaus/sphinx-multiversion - tags: true - # Deploy documentation - - provider: pages - skip_cleanup: true - keep_history: false - token: $GITHUB_TOKEN - local_dir: html - on: - branch: master - repo: Holzhaus/sphinx-multiversion - -stages: - - Testing - - Deployment - -cache: - pip: true - -install: -- python -m pip install pre-commit setuptools wheel -- python -m pip install -r requirements.txt -- python setup.py install - -before_script: -- pre-commit run --all-files --show-diff-on-failure -- python -m unittest --verbose - -script: -- mkdir html -- git fetch --all -- python -I -m sphinx_multiversion -W docs html -- python setup.py build sdist bdist_wheel -