default:
  image: node:lts

  cache:
    paths:
      - node_modules/

variables:
  DATASET:
    description: "Dataset to import (either dole, jorf, kali or legi"
    value: dole
  ## Ensure that all the Git tags are retrieved.
  ## https://docs.gitlab.com/ee/user/project/pipelines/settings.html#git-shallow-clone
  GIT_DEPTH: 0
  ## Needed for storing locale dates
  TZ: Europe/Paris

stages:
  - build
  # - test
  - download

build:
  stage: build
  except:
    - schedules
    - web
  before_script:
    - npm ci
  script:
    - rm -f .env
    - ln -s example.env .env
    - npm run build

# test:
#   stage: test
#   except:
#     - schedules
#     - web
#   before_script:
#     - npm ci
#   script:
#     - rm -f .env
#     - ln -s example.env .env
#     - npm run test

download:
  stage: download
  only:
    - schedules
    - web

  before_script:
    ## Install ssh-agent if not already installed, it is required by Docker.
    ## (change apt-get to yum if you use an RPM-based image)
    - "which ssh-agent || ( apt update -y && apt install openssh-client -y )"

    ## Run ssh-agent (inside the build environment)
    - eval $(ssh-agent -s)

    ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
    ## We're using tr to fix line endings which makes ed25519 keys work
    ## without extra base64 encoding.
    ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -

    ## Create the SSH directory and give it the right permissions
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh

    ## Accept the SSH host keys of git.en-root.org.
    - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts

    ## Set the Git user name and email.
    - git config --global user.email "tricoteuses@tricoteuses.fr"
    - git config --global user.name "Tricoteuses données Dila"

    - npm ci

  script:
    - rm -f .env
    - ln -s example.env .env
    - rm -Rf dila-data/
    - mkdir dila-data/
    - git clone git@git.en-root.org:tricoteuses/data/dila/${DATASET}.git dila-data/${DATASET}
    - npx tsx src/scripts/download_dila_dataset.ts ${DATASET} dila-data/ --push

  timeout: 6 hours