Select Git revision
.gitlab-ci.yml
.gitlab-ci.yml 8.12 KiB
# image: python:3.10-slim
image: leximpact/prepare-data:latest
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
PIP_DOWNLOAD_DIR: ".pip"
# For Git, to prevent asking for user config
GIT_EMAIL: gitlabci@gitlab.com
GIT_AUTHOR_NAME: gitlabci
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
OUT_FOLDER: "$CI_COMMIT_REF_NAME" # For just branch
ROOT_FOLDER: "/mnt/data-out/leximpact-prepare-data/CI"
# For Docker
CI_REGISTRY: https://index.docker.io/v1/
DOCKER_HUB_IMAGE_NAME: "leximpact/prepare-data"
stages:
- docker
- init
- check
- run_pipeline
- test
- deploy-doc
- pre-publish
- publish
- update_version
cache:
key:
files:
- poetry.lock
- .pre-commit-config.yaml
# prefix: ${CI_JOB_NAME}
paths:
- .venv
- openfisca-france-data
- ${PIP_CACHE_DIR}
- ${PIP_DOWNLOAD_DIR}
- ${PRE_COMMIT_HOME}
before_script:
- cp deploy/.env-ci notebooks/.env
- cp deploy/.env-ci leximpact_prepare_data/.env
- cp deploy/.env-ci .env
- sed -i "s/BRANCH_NAME/$OUT_FOLDER/" notebooks/.env
- sed -i "s/BRANCH_NAME/$OUT_FOLDER/" leximpact_prepare_data/.env
- sed -i "s/BRANCH_NAME/$OUT_FOLDER/" .env
# Run install on every job to ensure that the environment is up to date. Cache will be used.
- poetry config virtualenvs.in-project true
- poetry install --extras "pipeline"
- poetry run pre-commit install --install-hooks
build docker image:
stage: docker
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
# Prevent call of before_script because it will fail in this context
before_script:
- ''
script:
# From https://github.com/GoogleContainerTools/kaniko#pushing-to-docker-hub
- DOCKER_HUB_AUTH=$(echo -n $DOCKER_HUB_USER:$DOCKER_HUB_PASSWORD | base64)
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$DOCKER_HUB_AUTH\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/deploy/Dockerfile-ci --destination $DOCKER_HUB_IMAGE_NAME:latest
# Build Docker is needed only if code as changed.
when: manual
install:
stage: init