Skip to content

Workflows tests/validation/publication des IG FHIR (plantuml, testscript, Fhir)

License

Notifications You must be signed in to change notification settings

ansforge/IG-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo_LEF_CI-SIS

GitHub Action pour la publication d'IG FHIR

GitHub Action pour les IG FHIR :

Usage

Exemple Workflow file

Un exemple pour publier sur les pages github avec lancement des tests, generation du diagramme pantuml et des testscripts

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:      
          path: igSource
      - uses: ansforge/IG-workflows@v0.2.0
        with:      
          repo_ig: "./igSource"   
          github_page: "true"
          github_page_token: ${{ secrets.GITHUB_TOKEN }}
          bake: "true"
          validator_cli: "true"
          generate_plantuml : "true"
          generate_mapping_plantuml : "true"
          generate_testscript : "true"

Un exemple pour publier une release sur le repo "ansforge/IG-website-release" dans les ig/fhir

jobs:
  run-release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:      
          path: igSource
      - uses: ansforge/IG-workflows@v0.2.0
        with:      
          repo_ig: "./igSource"   
          github_page: "true"
          github_page_token: ${{ secrets.GITHUB_TOKEN }}
          bake: "true"
          validator_cli: "true"
          publish_repo: "ansforge/IG-website-release"
          publish_repo_token :  ${{ secrets.ANS_IG_API_TOKEN }} 
          publish_path_outpout : "./IG-website-release/www/ig"

Un exemple pour publier une release sur le repo "ansforge/IG-website-release" dans les ig

jobs:
  run-release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:      
          path: igSource
      - uses: ansforge/IG-workflows@v0.2.0
        with:      
          repo_ig: "./igSource"   
          github_page: "true"
          github_page_token: ${{ secrets.GITHUB_TOKEN }}
          bake: "true"
          validator_cli: "true"
          publish_repo: "ansforge/IG-website-release"
          publish_repo_token :  ${{ secrets.ANS_IG_API_TOKEN }} 
          publish_path_outpout : "./IG-website-release/www/ig"

Inputs

name value default description
ig-publisher-version string latest Version de l'ig publisher : format : 'x.y.z'
github_page_token string Token pour passer les GitHub Pages du repo
github_page boolean false Publication de l'IG dans les GitHub pages
repo_ig string Chemin d'accés au repertoire des sources de l'IG
bake boolean false Permet d'inclure les les projets annuaires et FrCore qui sont sur simplifier
validator_cli boolean False Permet de lancer les tests avec le validator_cli d'HL7
termino_server string 'http://tx.fhir.org' Permet la verification sur le serveur de terminologie passé en paramètre.
publish_repo string '' Permet d'indiquer le repo git de publication de l'IG
publish_path_outpout string '' Chemin de publication de l'IG
publish_repo_token string Token pour publier sur le repo GIT de publication
generate_plantuml string false Génération de diagramme plantuml
generate_mapping_plantuml string false Génération de diagramme de mmapings plantuml
generate_testscript string false Génération des fichiers testscripts

Fonctionnalités

Sushi

Principes :

  • Installation de sushi
  • Lancement de sushi
  • Résulats accéssibles via le terminal
    • image

Incorporation des projets de simplifier

Pour installer les dépendances à des projets simplifier, il faut utiliser la methode bake de simplifier :

  • Installation de .NET
  • Installation du terminal firely
  • Installation des projets :
    • ans.annuaire.fhir.r4
    • hl7.fhir.fr.core

Tests avec le validator_cli

Principes :

  • Téléchargement de la dernière version du validator_cli
  • Lancement des tests
  • Affichage des resultats dans la sortie de l'action
  • Publication des résultats dans les pages github (branch gh-pages)

Génération du diagramme plantUML de l'IG

Principes :

  • Installation de python
  • Lancement du script python de génération :
    • Requête sqlite sur la base de données sqlite générée par l'IG
    • Création du fichier plantuml
    • Génération du diagramme png et plantuml
  • Publication des diagrammes dans les pages github (branch gh-pages)
    • image

Génération des diagrammes de mapping plantUML de l'IG

Principes :

  • Installation de python
  • Lancement du script python de génération :
    • Requête sqlite sur la base de données sqlite générée par l'IG
    • Création des mmaping
    • Génération du diagramme png et plantuml
  • Publication des diagrammes dans les pages github (branch gh-pages)
    • image

Génération des fichiers testscripts

Principes :

  • Installation du projet testscript-generator
  • Lancement de la génération des testscripts :
    • bundle exec bin/testscript_generator read mustSupport search interaction
  • Publication des testscriots dans les pages github (branch gh-pages)
    • Les fichiers sont présents dans le sous repertoire testscript dans la branch gh-pages

Publication sur les pages de github

Les élément générés sont publiés sur les pages github (branch gh-pages) avec une sous-aborescence avec le nom de la branche : image

Les pages sont accéssible via : De publier les pages : https://ansforge.github.io/{nom du repo}/ig/{nom de la branche}

Génération de release pour publication

Principes :

  • Création de la version courante
  • Creation la release pour publication
  • Push de la release dans le repo distant