Skip to content

Commit

Permalink
Merge pull request #2240 from incubateur-ademe/publicodes-migration
Browse files Browse the repository at this point in the history
Migration Publicodes v1 (NGC-454)
  • Loading branch information
EmileRolley authored Feb 14, 2024
2 parents fbbc523 + 78d1708 commit 67c1401
Show file tree
Hide file tree
Showing 30 changed files with 623 additions and 563 deletions.
69 changes: 20 additions & 49 deletions .github/workflows/upload-compilation-result.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,10 @@ jobs:
compile:
runs-on: ubuntu-22.04
outputs:
compilation-result: ${{ steps.compilation.outputs.result }}
check-translation-result: ${{ steps.check-translation.outputs.result }}
check-personas-result: ${{ steps.check-personas.outputs.result }}
test-translation-result: ${{ steps.test-translation.outputs.result }}
test-personas-nightly-result: ${{ steps.test-personas-nightly.outputs.result }}
test-personas-latest-result: ${{ steps.test-personas-latest.outputs.result }}
test-optim-result: ${{ steps.test-optim.outputs.result }}
test-url: ${{ steps.set-test-url.outputs.fr }}
steps:
- uses: actions/checkout@v3
Expand All @@ -30,14 +27,8 @@ jobs:
- run: yarn install --immutable
- run: git log | head && git status
- id: compilation
name: Compiles the model and stores the result -- with escaped special characters.
run: |
yarn compile:md > compile.res
body="$(cat compile.res | tail --lines=+3 | head --lines=-1)"
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-output name=result::${body}"
name: Compile
run: yarn compile
- id: check-translation
name: Checks the rules translation
run: |
Expand All @@ -56,15 +47,12 @@ jobs:
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-output name=result::${body}"
- id: test-optim
name: Test the optimized rules against base rules
run: yarn test:optim
- id: test-translation
name: Test the translated rules against production
run: |
yarn test:translation --markdown > test-translation.res
body="$(cat test-translation.res | tail --lines=+3 | head --lines=-1)"
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-output name=result::${body}"
run: yarn test:translation
- id: test-personas-latest
name: Test the personas bilans against production
run: |
Expand All @@ -83,15 +71,6 @@ jobs:
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-output name=result::${body}"
- id: test-optim
name: Test the optimized rules against base rules
run: |
yarn test:optim --markdown > test-optim.res
body="$(cat test-optim.res | tail --lines=+3 | head --lines=-1)"
body="${body//'%'/'%25'}"
body="${body//$'\n'/'%0A'}"
body="${body//$'\r'/'%0D'}"
echo "::set-output name=result::${body}"
- id: set-test-url
# Setups the NGC url with the corresponding PR number: https://nosgestesclimat.fr?PR=<pr_number>
run: echo "::set-output name=fr::${{ steps.deploy-env.outputs.name == 'master' && 'https://preprod.nosgestesclimat.fr' || format('https://preprod.nosgestesclimat.fr?PR={0}', github.event.pull_request.number) }}"
Expand All @@ -108,45 +87,37 @@ jobs:
<p align="center">:rocket: Test the model from the website: <a href=\"${{ needs.compile.outputs.test-url }}\">${{ needs.compile.outputs.test-url }}</a></p>
---
### :wrench: Model compilation status
${{ needs.compile.outputs.compilation-result }}
---
### :globe_with_meridians: Translation status
## :globe_with_meridians: Translation status
> _You will find more information about the translation in the [dedicated file](https:/github.com/datagir/nosgestesclimat/blob/master/docs/translation.md)._
#### Rules
### Rules
${{ needs.compile.outputs.check-translation-result }}
#### Personas
### Personas
${{ needs.compile.outputs.check-personas-result }}
#### Test translation (fr -> en)
## :couple: Personas changes
${{ needs.compile.outputs.test-translation-result }}
### Test personas bilans against [preprod](https://nosgestesclimat-api.osc-fr1.scalingo.io/nightly/fr/FR/rules)
---
<details open=true>
<summary>In details</summary>
### :couple: Personas changes
${{ needs.compile.outputs.test-personas-nightly-result }}
#### Test personas bilans against [production](https://nosgestesclimat-api.osc-fr1.scalingo.io/latest/fr/FR/rules)
</details>
${{ needs.compile.outputs.test-personas-latest-result }}
### Test personas bilans against [production](https://nosgestesclimat-api.osc-fr1.scalingo.io/latest/fr/FR/rules)
#### Test personas bilans against [preprod](https://nosgestesclimat-api.osc-fr1.scalingo.io/nightly/fr/FR/rules)
<details>
<summary>Show</summary>
${{ needs.compile.outputs.test-personas-nightly-result }}
#### Test the model [optimisation](https://publicodes.github.io/tools/modules/optims.html)
${{ needs.compile.outputs.test-personas-latest-result }}
${{ needs.compile.outputs.test-optim-result }}
</details>
" > artifacts/result.md
- name: Upload artifact
Expand Down
57 changes: 24 additions & 33 deletions data/actions/alimentation.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ alimentation . viande faible empreinte . par semaine . nouveau régime . compens
unité: kgCO2e/semaine
note: On compense la suppression des plat viande 2 en plat viande 1.

alimentation . réduire poisson:

alimentation . réduire poisson . max 2 par semaine:
applicable si: nombre de plats poisson > 2 repas/semaine
action:
Expand Down Expand Up @@ -204,15 +206,13 @@ alimentation . devenir végétarien . différence par semaine repas:
unité: kgCO2e/semaine

alimentation . devenir végétarien . différence par semaine repas . recalcul:
formule:
recalcul:
règle: plats
avec:
plats . végétarien . nombre: nouveau nombre plats végé
plats . viande 1: 0
plats . viande 2: 0
plats . poisson 1: 0
plats . poisson 2: 0
valeur: plats
contexte:
plats . végétarien . nombre: nouveau nombre plats végé
plats . viande 1: 0
plats . viande 2: 0
plats . poisson 1: 0
plats . poisson 2: 0

alimentation . devenir végétarien . différence par semaine repas . nouveau nombre plats végé:
formule: plats . végétarien . nombre + nombre plats non végé
Expand Down Expand Up @@ -281,18 +281,14 @@ alimentation . devenir végétalien . différence par semaine chocolat chaud:
unité: kgCO2e/semaine

alimentation . une semaine petit déjeuner végétalien:
formule:
recalcul:
règle: petit déjeuner . par semaine
avec:
alimentation . petit déjeuner . type: "'végétalien'"
valeur: petit déjeuner . par semaine
contexte:
alimentation . petit déjeuner . type: "'végétalien'"

alimentation . une semaine chocolat chaud végétalien:
formule:
recalcul:
règle: boisson . chaude . chocolat chaud
avec:
alimentation . type de lait: "'lait d'avoine'"
valeur: boisson . chaude . chocolat chaud
contexte:
alimentation . type de lait: "'lait d'avoine'"

alimentation . réduire café:

Expand Down Expand Up @@ -428,11 +424,9 @@ alimentation . manger local:
plus importante pour les régimes végétalisés, ce qui n'est pas pris en compte ici.
alimentation . manger local . recalcul:
formule:
recalcul:
règle: alimentation . local . empreinte
avec:
alimentation . local . consommation: "'oui toujours'"
valeur: alimentation . local . empreinte
contexte:
alimentation . local . consommation: "'oui toujours'"

alimentation . manger de saison:
non applicable si: de saison . consommation = 'oui toujours'
Expand All @@ -451,11 +445,9 @@ alimentation . manger de saison:
Pour en savoir plus sur la méthode de calcul, parcourez sa formule, les variables seront expliquées.
alimentation . manger de saison . recalcul:
formule:
recalcul:
règle: alimentation . de saison . empreinte
avec:
alimentation . de saison . consommation: "'oui toujours'"
valeur: alimentation . de saison . empreinte
contexte:
alimentation . de saison . consommation: "'oui toujours'"

alimentation . boisson . eau en bouteille . arrêter:
applicable si:
Expand Down Expand Up @@ -496,10 +488,9 @@ alimentation . déchets . devenir zéro déchet:
alimentation . déchets . devenir zéro déchet . recalcul:
formule:
recalcul:
règle: alimentation . déchets
avec:
alimentation . déchets . quantité jetée: "'zéro déchet'"
valeur: alimentation . déchets
contexte:
alimentation . déchets . quantité jetée: "'zéro déchet'"

alimentation . déchets . réduire gaspillage:
titre: Réduire le gaspillage alimentaire
Expand Down
42 changes: 18 additions & 24 deletions data/actions/divers.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,9 @@ divers . électroménager . allongement:
Si vous souhaitez absoluement vous séparer d'un objet prématurément, pensez aux ressourceries ou recycleries, par exemple, qui sont des lieux dédiés au réemploi ! 😉
divers . électroménager . appareils préservation allongée:
recalcul:
règle: divers . électroménager . appareils
avec:
coefficient préservation: 4 / 3
valeur: divers . électroménager . appareils
contexte:
coefficient préservation: 4 / 3

divers . ameublement . allongement:
titre: Allonger la vie de mes meubles
Expand All @@ -74,10 +73,9 @@ divers . ameublement . allongement:
Si vous souhaitez absoluement vous séparer d'un objet prématurément, pensez aux ressourceries ou recycleries, par exemple, qui sont des lieux dédiés au réemploi ! 😉
divers . ameublement . meubles préservation allongée:
recalcul:
règle: divers . ameublement . meubles
avec:
coefficient préservation: 4 / 3
valeur: divers . ameublement . meubles
contexte:
coefficient préservation: 4 / 3

divers . tabac . arrêter:
titre: Arrêter de fumer
Expand Down Expand Up @@ -122,10 +120,9 @@ divers . numérique . appareils . allongement:
Si vous souhaitez absoluement vous séparer d'un objet prématurément, pensez aux ressourceries ou recycleries, par exemple, qui sont des lieux dédiés au réemploi ! 😉
divers . numérique . appareils préservation allongée:
recalcul:
règle: divers . numérique . appareils
avec:
coefficient préservation: 4 / 3
valeur: divers . numérique . appareils
contexte:
coefficient préservation: 4 / 3

divers . textile . réduire neuf:

Expand Down Expand Up @@ -160,10 +157,9 @@ divers . produits consommables . réduire:
divers . produits consommables . réduire . recalcul:
formule:
recalcul:
règle: produits consommables
avec:
produits consommables . consommation: "'faible'"
valeur: produits consommables
contexte:
produits consommables . consommation: "'faible'"

divers . autres produits . réduire:
non applicable si: autres produits . niveau de dépenses = "'faible'"
Expand All @@ -176,10 +172,9 @@ divers . autres produits . réduire:
divers . autres produits . réduire . recalcul:
formule:
recalcul:
règle: autres produits
avec:
autres produits . niveau de dépenses: "'faible'"
valeur: autres produits
contexte:
autres produits . niveau de dépenses: "'faible'"

divers . arrêter sport motorisé:
inactive: oui
Expand All @@ -193,7 +188,6 @@ divers . arrêter sport motorisé:
divers . arrêter sport motorisé . recalcul:
formule:
recalcul:
règle: divers . loisirs . sports
avec:
divers . loisirs . sports . sports énergivores . présent: non
valeur: divers . loisirs . sports
contexte:
divers . loisirs . sports . sports énergivores . présent: non
50 changes: 20 additions & 30 deletions data/actions/logement.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,11 @@ logement . se chauffer au bois:
Nous pourrons par la suite l'adapter en fonction du rendement des installations résidentielles.
logement . se chauffer au bois . recalcul:
formule:
recalcul:
règle: logement . chauffage . bois . empreinte
avec:
logement . chauffage . bois . présent: oui
logement . chauffage . bois . type: "'granulés'"
logement . chauffage . bois . type . granulés . consommation: recalcul . consommation
valeur: logement . chauffage . bois . empreinte
contexte:
logement . chauffage . bois . présent: oui
logement . chauffage . bois . type: "'granulés'"
logement . chauffage . bois . type . granulés . consommation: recalcul . consommation
note: On considère un chauffage via granulés.

logement . se chauffer au bois . recalcul . consommation:
Expand Down Expand Up @@ -527,34 +525,26 @@ logement . mutualiser son logement . empreinte partagée:
- divers . ameublement

logement . mutualiser son logement . empreinte partagée . logement:
formule:
recalcul:
règle: logement
avec:
logement . habitants: logement . habitants + nombre colocataires
logement . vacances: 0
valeur: logement
contexte:
logement . habitants: logement . habitants + nombre colocataires
logement . vacances: 0
note: On fait l'hypothèse que les vacances ne seront pas partagées avec le nouveau colocataire.

logement . mutualiser son logement . empreinte partagée . divers:
logement . mutualiser son logement . empreinte partagée . divers . numérique:
formule:
recalcul:
règle: divers . numérique . appareils
avec:
logement . habitants: logement . habitants + nombre colocataires
valeur: divers . numérique . appareils
contexte:
logement . habitants: logement . habitants + nombre colocataires

logement . mutualiser son logement . empreinte partagée . divers . électroménager:
formule:
recalcul:
règle: divers . électroménager . appareils
avec:
logement . habitants: logement . habitants + nombre colocataires
valeur: divers . électroménager . appareils
contexte:
logement . habitants: logement . habitants + nombre colocataires

logement . mutualiser son logement . empreinte partagée . divers . ameublement:
formule:
recalcul:
règle: divers . ameublement
avec:
logement . habitants: logement . habitants + nombre colocataires
divers . ameublement . meubles . matelas: 0
divers . ameublement . meubles . lit: 0
valeur: divers . ameublement
contexte:
logement . habitants: logement . habitants + nombre colocataires
divers . ameublement . meubles . matelas: 0
divers . ameublement . meubles . lit: 0
Loading

0 comments on commit 67c1401

Please sign in to comment.