tricoteuses-legifrance/.gitlab-ci.yml

102 lines
2.3 KiB
YAML

default:
image: node:lts
cache:
paths:
- node_modules/
variables:
DATASET:
description: "Select the dataset to import."
options:
- "dole"
- "jorf"
- "kali"
- "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
- update
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
update_database:
stage: update
only:
- schedules
- web
trigger: tricoteuses/tricoteuses-legal-update