Aller au contenu

Publication du site sur Internet

Pour rendre votre site disponible sur Internet, vous avez plusieurs solutions :

Je décris ici la méthode pour utiliser les GitHub Pages et pour les Gitlab Pages, mais toutes les options ci-dessus sont possibles avec Properdocs.

Github Pages

Pour utiliser GitHub Pages, vous devez héberger votre projet dans un dépôt git de GitHub.

Assurez-vous que votre projet GitHub est bien configuré pour générer des pages à partir des GitHub Actions.

Alles dans les paramètres des GitHub Pages en cliquant le menu SettingsPages et définissez GitHub Actions comme source :

settings

Créez ensuite les dossiers .github et .github/workflows à la racine de votre projet

Ajoutez-y le fichiers de suivant:

.github/workflows/website.yml
name: publish-websites

on:
  workflow_dispatch:
  push:
  pull_request:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v6
      - name: Set up Python 3
        uses: actions/setup-python@v6
        with:
          python-version: "3.12"
      - name: Install uv
        uses: astral-sh/setup-uv@v8.2.0
        with:
          version: "0.11.19"
          enable-cache: true
      - name: Cache the virtualenv
        uses: actions/cache@v5
        with:
          path: ./.venv
          key: ${{ runner.os }}-venv-${{ hashFiles('**/uv.lock') }}
      - name: Install dependencies
        run: uv sync --no-install-project
      - name: Build site
        run: uv run properdocs build -d public
      - name: Upload site pages artifact
        if: |
          (github.event_name == 'push' && github.ref == 'refs/heads/main') ||
          (github.event_name == 'workflow_dispatch')
        uses: actions/upload-pages-artifact@v5
        with:
          path: public
      - name: Deploy to GitHub Pages
        if: |
          (github.event_name == 'push' && github.ref == 'refs/heads/main') ||
          (github.event_name == 'workflow_dispatch')
        id: deployment
        uses: actions/deploy-pages@v5

Lors du prochain push dans la branche main avec ces nouveaux fichiers, l’action de github publiera le contenu de votre site sur GitHub Pages.

Vous obtenez l’URL à laquelle le site a été publié, en retournant dans SettingsPages :

settings

Après avoir sauvé cette configuration, modifiez encore le fichier properdocs.yml avec l’URL que vous avez dans les settings :

properdocs.yml
site_name: My Education Site
site_url: https://heia-fr.github.io/mkdocs-edu-howto/
...

Faites un commit et un push et votre site devrait être publié à l’URL adéquate.

Grâce aux GitHub Actions, votre site sera automatiquement publié lors de chaque push de la branche main du projet.

Gitlab Pages

Pour utiliser GitLab Pages, vous devez héberger votre projet dans un dépôt git de GitLab.

Créez ensuite un fichier .gitlab-ci.yml à la racine de votre projet avec le contenu suivant :

.gitlab-ci.yml
image: python:3.14-bookworm

workflow:
  rules:
    - if: $CI_COMMIT_BRANCH

cache:
  paths:
    - '.venv/'

before_script:
  - |
    apt-get update && \
      export DEBIAN_FRONTEND=noninteractive && \
      apt-get -y install --no-install-recommends \
    python3-brotli \
    python3-cffi \
    python3-pip \
    zip
  - pip install uv
  - uv sync --no-install-project

# Build and publish main branch to GitLab pages
pages:
  stage: deploy
  script:
    - uv run properdocs build -d public
  artifacts:
    paths:
      - public
  rules:
    - if: $CI_COMMIT_BRANCH == "main"

# Build without publishing to detect breaking changes on non-main branches
test:
  stage: test
  script:
    - uv run properdocs build -d test
  artifacts:
    paths:
      - test
  rules:
    - if: $CI_COMMIT_BRANCH != "main"

Lors du prochain push avec ce nouveau fichier, le CI/CD de gitlab publiera votre site.

Allez dans Settings → Pages pour découvrir l’URL de votre site.

Modifiez le fichier properdocs.yml avec cette URL.

properdocs.yml
site_name: My Education Site
site_url: https://heia-fr.gitlab.io/mkdocs-edu-howto/
...

Faites un commit et un push pour activer le changement.

Grâce au GitLab CI/CD, votre site sera automatiquement publié lors de chaque push de la branche main du projet.