diff --git a/.github/workflows/build-and-release.yaml b/.github/workflows/build-and-release.yaml index b464b69..a0348e8 100644 --- a/.github/workflows/build-and-release.yaml +++ b/.github/workflows/build-and-release.yaml @@ -83,8 +83,8 @@ jobs: if: "! contains(github.ref_name,'b') && matrix.os == 'ubuntu-20.04' && matrix.python-version == '3.8'" run: | source .venv/bin/activate - coverage html -d dist/tests/ - rm dist/tests/.gitignore + coverage html -d target/docs/tests/ + rm target/docs/tests/.gitignore - name: Build package if: "matrix.os == 'ubuntu-20.04' && matrix.python-version == '3.8'" @@ -97,10 +97,19 @@ jobs: run: | source .venv/bin/activate pip install -e .[doc] - pdoc3 --html --output-dir dist/ rok4 - cp README.md CHANGELOG.md dist/ - - - name: Upload packages, tests results and documentation + pdoc3 --html --output-dir target/docs/ rok4 + cp docs/mkdocs.yml target/mkdocs.yml + cp -r docs/overrides target/ + cp docs/unit-tests.md target/docs/unit-tests.md + cp docs/documentation.md target/docs/documentation.md + cp docs/README.hdr.md target/docs/README.md + cp docs/CHANGELOG.hdr.md target/docs/CHANGELOG.md + cp docs/CONTRIBUTING.hdr.md target/docs/CONTRIBUTING.md + sed "s#x.y.z#${{ github.ref_name }}#g" README.md >>target/docs/README.md + cat CHANGELOG.md >>target/docs/CHANGELOG.md + cat CONTRIBUTING.md >>target/docs/CONTRIBUTING.md + + - name: Upload packages if: "matrix.os == 'ubuntu-20.04' && matrix.python-version == '3.8'" uses: actions/upload-artifact@v3 with: @@ -109,6 +118,17 @@ jobs: if-no-files-found: error retention-days: 1 + - name: Publish documentation + if: "! contains(github.ref_name,'b') && matrix.os == 'ubuntu-20.04' && matrix.python-version == '3.8'" + run: | + source .venv/bin/activate + pip install -r docs/requirements.txt + git config user.name github-actions + git config user.email github-actions@github.com + cd target/ + mike deploy --push --update-aliases --branch gh-pages -t "Version ${{ github.ref_name }}" ${{ github.ref_name }} latest + mike set-default --push --branch gh-pages ${{ github.ref_name }} + publish_artefacts: name: Add built artefacts to release and PyPI needs: [create_release, build_and_test] @@ -155,56 +175,6 @@ jobs: password: ${{ secrets.PYPI_API_TOKEN }} packages_dir: to_publish/ - commit_documentation: - name: Add documentation and unit tests results into gh-pages branch - needs: build_and_test - if: "always() && ! contains(github.ref_name,'b') && needs.create_release.outputs.job_status == 'success' && needs.build_and_test.outputs.job_status == 'success'" - runs-on: ubuntu-latest - - steps: - - - name: Checkout project on gh-pages - uses: actions/checkout@v4 - with: - ref: 'gh-pages' - token: ${{ secrets.GITHUB_TOKEN }} - - - uses: actions/download-artifact@v3 - with: - name: dist-py3 - path: artifact/ - - - name: Copy version elements to final location - run: | - mkdir -p docs/versions/${{ github.ref_name }} - cp -r artifact/rok4 docs/versions/${{ github.ref_name }}/ - cp -r artifact/tests docs/versions/${{ github.ref_name }}/ - - - name: Add pages from templates - run: | - sed "s#__version__#${{ github.ref_name }}#" templates/mkdocs.template.yml >mkdocs.yml - - sed "s#__version__#${{ github.ref_name }}#" templates/unit-tests.template.md >docs/versions/${{ github.ref_name }}/unit-tests.md - sed "s#__version__#${{ github.ref_name }}#" templates/documentation.template.md >docs/versions/${{ github.ref_name }}/documentation.md - - sed "s#__version__#${{ github.ref_name }}#" templates/index-version.template.md >docs/versions/${{ github.ref_name }}/index.md - cat artifact/README.md >>docs/versions/${{ github.ref_name }}/index.md - sed -i "s#x.y.z#${{ github.ref_name }}#g" docs/versions/${{ github.ref_name }}/index.md - - cp templates/index-versions.template.md docs/versions/index.md - sed "s/^## \(.*\)$/## \1 \n\n[➔ Lien vers la documentation](\1\/index.md) /" artifact/CHANGELOG.md >>docs/versions/index.md - - sed "s#__version__#${{ github.ref_name }}#" templates/latest.template.html >docs/versions/latest/index.html - rm -r artifact - - - name: Publish on gh-pages branch - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git add -v docs/versions/${{ github.ref_name }}/ docs/versions/latest/ docs/versions/index.md mkdocs.yml - git commit -m "Add documentation for version ${{ github.ref_name }}" - git push - delete_version: name: Remove release and tag if error occured needs: build_and_test diff --git a/.github/workflows/build-docs.yaml b/.github/workflows/build-docs.yaml deleted file mode 100644 index 53fd700..0000000 --- a/.github/workflows/build-docs.yaml +++ /dev/null @@ -1,67 +0,0 @@ -name: Build doc site with mkdocs and deploy - -on: - workflow_dispatch: - -jobs: - - build: - - name: Build doc site with mkdocs - - runs-on: ubuntu-latest - - steps: - - name: Checkout project - uses: actions/checkout@v4 - with: - ref: 'gh-pages' - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Setup python - uses: actions/setup-python@v4 - with: - python-version: "3.10" - cache: 'pip' - - - name: Install Mkdocs - run: pip install -r requirements.txt - - - name: Run mkdocs and archive - run : | - mkdocs build - tar \ - --dereference --hard-dereference \ - --directory "site" \ - -cvf "${{ runner.temp }}/site.tar" \ - --exclude=.git \ - --exclude=.github \ - . - - - name: Upload pages - uses: actions/upload-artifact@main - with: - name: github-pages - path: ${{ runner.temp }}/site.tar - retention-days: 1 - - deploy: - - name: Deploy site to github pages - - needs: build - - permissions: - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source - - # Deploy to the github-pages environment - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - runs-on: ubuntu-latest - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v2 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f32290e..22c6fbc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,6 +33,7 @@ repos: - id: black args: ["--target-version=py38"] + - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: diff --git a/docs/CHANGELOG.hdr.md b/docs/CHANGELOG.hdr.md new file mode 100644 index 0000000..e0257d2 --- /dev/null +++ b/docs/CHANGELOG.hdr.md @@ -0,0 +1,4 @@ +--- +hide: + - navigation +--- diff --git a/docs/CONTRIBUTING.hdr.md b/docs/CONTRIBUTING.hdr.md new file mode 100644 index 0000000..e0257d2 --- /dev/null +++ b/docs/CONTRIBUTING.hdr.md @@ -0,0 +1,4 @@ +--- +hide: + - navigation +--- diff --git a/docs/README.hdr.md b/docs/README.hdr.md new file mode 100644 index 0000000..e0257d2 --- /dev/null +++ b/docs/README.hdr.md @@ -0,0 +1,4 @@ +--- +hide: + - navigation +--- diff --git a/docs/documentation.md b/docs/documentation.md new file mode 100644 index 0000000..59f441e --- /dev/null +++ b/docs/documentation.md @@ -0,0 +1,9 @@ +--- +hide: + - navigation + - toc +--- + +# Documentation technique + + diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 0000000..a173ee6 --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,28 @@ +site_name: "Projet ROK4 - Librairies python" +site_url: https://rok4.github.io/core-python + +nav: + - Accueil: README.md + - Documentation technique: documentation.md + - Rapport des tests unitaires: unit-tests.md + - Historique des versions: CHANGELOG.md + - Contribuer: CONTRIBUTING.md + +theme: + logo: https://rok4.github.io/assets/images/rok4-carre.png + favicon: https://rok4.github.io/assets/images/rok4-carre.png + name: material + features: + - navigation.tabs + - navigation.tabs.sticky + language: fr + custom_dir: overrides + +extra_css: + - https://rok4.github.io/assets/css/commun.css + +extra: + homepage: https://rok4.github.io + version: + provider: mike + default: latest diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 0000000..7c55859 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} + +{% block outdated %} + 🚨 Vous êtes sur la documentation d'une ancienne version. 🚨 + + Cliquez ici pour aller sur la dernière version. + +{% endblock %} diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..f5f7010 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +mkdocs +mkdocs-material +mike diff --git a/docs/unit-tests.md b/docs/unit-tests.md new file mode 100644 index 0000000..091c6bd --- /dev/null +++ b/docs/unit-tests.md @@ -0,0 +1,9 @@ +--- +hide: + - navigation + - toc +--- + +# Rapport des tests unitaires + + diff --git a/pyproject.toml b/pyproject.toml index 9731107..3e9fcf9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ test = [ [project.urls] "Homepage" = "https://rok4.github.io/core-python" "Bug Reports" = "https://github.com/rok4/core-python/issues" -"Changelog" = "https://rok4.github.io/core-python/versions/" +"Changelog" = "https://rok4.github.io/core-python/latest/CHANGELOG/" "Source" = "https://github.com/rok4/core-python" [build-system]