J'ai profité du passage à 2022 pour faire un petit refresh de mon Curriculum Vitae. Mais quelle solution choisir ? Par le passé j'ai utilisé plusieurs méthodes pour publier  mon CV en ligne de la page HTML développée à la main aux sites mettant en forme et hébergeant des CV.

Cette année j'ai décidé de réitérer avec la solution Hugo mais entiÚrement générée et hébergée sur Github.

Hugo est un logiciel libre, générateur de site statique écrit en langage Go.

The world’s fastest framework for building websites
The world’s fastest framework for building websites

J'ai utilisé le thÚme Toha modifié pour mes besoins

GitHub - hugo-toha/toha: A Hugo theme for personal portfolio
A Hugo theme for personal portfolio. Contribute to hugo-toha/toha development by creating an account on GitHub.

L'idée est d'utiliser Github-Actions pour générer mon CV et le mettre en ligne sur Github-Pages.  

GitHub Actions facilite l'automatisation de tous vos workflows logiciels, maintenant avec des CI/CD de classe mondiale. Construisez, testez et déployez votre code directement depuis GitHub. Faites en sorte que les révisions de code, la gestion des branches et le triage des issues fonctionnent comme vous le souhaitez.

Une fois les fichiers de configurations écris, j'ai uploadé la configuration et le thÚme sur un repository Github.

Ensuite, j'ai créé une action qui va lancer la génération du site à partir de la configuration dans une branches gh-pages.

name: github pages

on:
  push:
    branches:
      - main  # Set a branch to deploy
  pull_request:

jobs:
  deploy:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: true  # Fetch Hugo themes (true OR recursive)
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          # extended: true

      - name: Build
        run: hugo --minify --enableGitInfo --disableKinds=sitemap,taxonomy,term

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        if: github.ref == 'refs/heads/main'
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

Ensuite il suffit de configurer GitHub-Pages pour utiliser la branch gh-pages :

A chaque commit de la branch "main" l'action sera exécutée et Github-Pages publiera votre CV.

Et voilà mon CV en ligne sans avoir à l'hébergé sur un serveur ou service spécifique : https://cv.julien.io