image: python:3-alpine

actualisation_dois:

  only:
    # restreindre au déclenchement automatique par schedule ou déclenchement manuel pour éviter de tourner en boucle (le commit produit par le pipeline qui déclenche le pipeline à nouveau)
    - schedules
    - web


  before_script:
    # installations permettant de faire tourner git
    - apk update
    - apk add git openssh

  script:
    # installation des bibliothèques python et exécution du script
    - pip install pandas
    - pip install requests
    - pip install matplotlib
    - python run-all-codes.py

  after_script:
    # commit des changements suite à l'exécution du script
    - git config user.name "${GITLAB_USER_NAME}"
    - git config user.email "${GITLAB_USER_EMAIL}"
    - git remote set-url --push origin "https://PUSH_TOKEN:${ACCESS_TOKEN}@gricad-gitlab.univ-grenoble-alpes.fr/${CI_PROJECT_PATH}.git"
    - git add -f dois-uga.csv 2-produce-graph/hist-evol-datasets-per-repo.png 2-produce-graph/hist-quantity-year-type.png 2-produce-graph/pie--datacite-client.png 2-produce-graph/pie--datacite-type.png 2-produce-graph/hist-last-datasets-by-client.png 1-enrich-with-datacite/all_datacite_clients_for_uga.csv 1-enrich-with-datacite/nb-dois.txt
    - git commit -m "Execution du pipeline. Actualisation des dois et des graphes."
    - git push origin HEAD:${CI_COMMIT_REF_NAME}

    # création d'un espace accueillant le clone du repo du site web
    - cd ..
    - mkdir cloned_repo 2>&1
    - cd cloned_repo
    - git clone ${LINK_TO_CLONE} 2>&1
    - git pull
    - cd -
    # copier le fichier "nb-dois.txt" pour commit dans le repo du site web
    - cp open-research-data-monitor-back/1-enrich-with-datacite/nb-dois.txt cloned_repo/${PATH_TO_PUSH}
    - cd cloned_repo/${PATH_TO_PUSH}
    # commit du fichier "nb-dois.txt" vers le repo du site web
    - git config user.name "${GITLAB_USER_NAME}"
    - git config user.email "${GITLAB_USER_EMAIL}"
    - git remote set-url --push origin "https://PUSH_TOKEN2:${ACCESS_TOKEN2}@gricad-gitlab.univ-grenoble-alpes.fr/${PROJECT_PATH2}.git"
    - git add -f nb-dois.txt
    - git commit -m "Execution du pipeline. Actualisation du nombre de dois."
    - git push origin HEAD:main
  
  artifacts:
    # ajout des fichiers du dépôt qui ont été modifiés, au cas où un problème serait survenu dans "after_script"
    paths:
      - dois-uga.csv
      - 2-produce-graph/hist-evol-datasets-per-repo.png
      - 2-produce-graph/hist-quantity-year-type.png
      - 2-produce-graph/pie--datacite-client.png
      - 2-produce-graph/pie--datacite-type.png
      - 2-produce-graph/hist-last-datasets-by-client.png
      - 1-enrich-with-datacite/nb-dois.txt
      - 1-enrich-with-datacite/all_datacite_clients_for_uga.csv
