Skip to content

Adapter le CI du projet utilisateur à l'AUS de l'INSEE

Adapter le CI du projet utilisateur à l'AUS de l'INSEE

Les tests réalisés sur l'AUS de l'INSEE avec @damiendotta (cf CR) ont permis de mettre en évidence que certaines corrections étaient nécessaires pour que le CI du projet utilisateur soit fonctionnel sur le gitlab interne de l'INSEE.

Validation

- [ ] Je peux réaliser la procédure de dev/dev_history_book.Rmd et obtenir une note de conjoncture au format bookdown compilé par l'intégration continue.

Un premier test à permis de mettre en évidence:

  • Que Le CI se déclenche et que les checks du package passent sur AUS
  • Que les jobs de deṕloiement étaient malheureusement manquant -> Ceci est relevée dans #31 (closed).

Comment Technique

  • Mettre à jour le gitlab-ci.yml du projet utilisateur, cf infra.
    • Figer l'image Docker de base
    • Mettre RSPM adequat dans le gitlab-ci.yml
    • Ajouter le Proxy
    • Ajouter le tag du runner dédié poc-kube
    • Installer conj.region à partir du {drat}
    • Expliquer dans la doc comment relancer le CI si nécessaire
Modifications à apporter au .gitlab-ci.yml
image: rocker/verse:4.1

variables:
  GIT_SSL_NO_VERIFY: "1"
  SUPER_PROXY: "http://proxy-rie.http.insee.fr:8080"
  SUPER_NO_PROXY: ".insee.fr,insee.intra,127.0.0.1"
  HTTP_PROXY: $SUPER_PROXY
  HTTPS_PROXY: $SUPER_PROXY
  http_proxy: $SUPER_PROXY
  https_proxy: $SUPER_PROXY
  no_proxy: $SUPER_NO_PROXY
  NO_PROXY: $SUPER_NO_PROXY
  GIT_DEPTH: 10
  REPO_NAME: "https://packagemanager.rstudio.com/all/__linux__/focal/latest"
  R_LIBS: "ci/lib"
  R_LIBS_USER: "ci/lib"
  SITE_BY_BRANCH: "TRUE"

default:
    tags:
        - poc-kube
  • Retirer les "Remotes: git" dans le DESCRIPTION utilisateur.

  • S'assurrer que {conjdown} n'est plus installé.

  • Créer le zip des odt cf .gitlab-ci.yml du package.

  • Mettre à jour le .Rprofile utilisateur avec pour pouvoir avoir accès aux bons repos

.Rprofile utilisateur
# Si on a déjà le Nexus, alors on est en AUS
# Et donc, dans "r-local", on a {conj.region}

if (any(grepl("nexus", getOption("repos")))) {
  
  repos <- c(
    "CRAN" = "https://nexus.insee.fr/repository/r-cran",
    "RSPM" = "https://nexus.insee.fr/repository/r-cran",
    "local" = "https://nexus.insee.fr/repository/r-local"
    # "drat" = "https://propre-conj.pages.lab.sspcloud.fr/drat",
    # "thinkropen" = "https://thinkr-open.r-universe.dev"
  )
  
} else {
  
  if (grepl("ubuntu 18.04|debian 8", tolower(utils::osVersion))) {
    repos <- c(
      "RSPM" = "https://packagemanager.rstudio.com/all/__linux__/bionic/latest",
      "CRAN" = "https://cran.rstudio.com",
      "thinkropen" = "https://thinkr-open.r-universe.dev",
      "drat" = "https://propre-conj.pages.lab.sspcloud.fr/drat"
    )
  } else if (grepl("ubuntu 20.04|debian 9", tolower(utils::osVersion))) {
    repos <- c(
      "RSPM" = "https://packagemanager.rstudio.com/all/__linux__/focal/latest",
      "CRAN" = "https://cran.rstudio.com",
      "thinkropen" = "https://thinkr-open.r-universe.dev",
      "drat" = "https://propre-conj.pages.lab.sspcloud.fr/drat"
    )
  } else if (grepl("centos", tolower(utils::osVersion))) {
    repos <- c(
      "RSPM" = "https://packagemanager.rstudio.com/all/__linux__/centos7/latest",
      "CRAN" = "https://cran.rstudio.com",
      "thinkropen" = "https://thinkr-open.r-universe.dev",
      "drat" = "https://propre-conj.pages.lab.sspcloud.fr/drat"
    )
  } else {
    # Chez ThinkR ou dans le CI - Accès Internet
    repos <- c(
      "CRAN" = "https://cran.rstudio.com",
      "RSPM" = "https://cran.rstudio.com",
      "drat" = "https://propre-conj.pages.lab.sspcloud.fr/drat",
      # "thinkropen" = "https://thinkr-open.r-universe.dev"
    )
  }
  
}

options(repos = repos)
Edited by Antoine Languillaume