community/.gitlab-ci.yml
2021-10-10 11:08:45 +02:00

119 lines
3.3 KiB
YAML

image: debian:buster-slim
# This template should be usable on any system that's based on apt.
# taken from tor gitlabci
.apt-template: &apt-template |
export LC_ALL=C.UTF-8
echo Etc/UTC > /etc/timezone
mkdir -p apt-cache
export APT_CACHE_DIR="$(pwd)/apt-cache"
echo 'quiet "1";' \
'APT::Install-Recommends "0";' \
'APT::Install-Suggests "0";' \
'APT::Acquire::Retries "20";' \
'APT::Get::Assume-Yes "true";' \
'Dpkg::Use-Pty "0";' \
"Dir::Cache::Archives \"${APT_CACHE_DIR}\"; " \
>> /etc/apt/apt.conf.d/99gitlab
apt-get update -qq
apt-get upgrade -qy
variables:
GIT_SUBMODULE_STRATEGY: recursive
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
TRANSLATION_BRANCH: "communitytpo-contentspot"
stages:
- build
- test_l10n
pages:
cache:
key: $CI_PROJECT_PATH_SLUG.${CI_COMMIT_REF_SLUG}
paths:
- packages
- lego
- apt-cache
- venv
- .cache/pip
- .cache/lektor/builds/
stage: build
script:
- *apt-template
- DEBIAN_FRONTEND=noninteractive apt-get install gettext python3-babel python3-pip git python3-inifile python3-dev python3-setuptools python3-openssl python3-cryptography i18nspector apt-utils ca-certificates -y
- pip3 install virtualenv
- virtualenv venv
- source venv/bin/activate
- pip3 install lektor
- echo 'checking out translations'
- rm -rf i18n
- git clone --branch $TRANSLATION_BRANCH https://git.torproject.org/translation.git i18n
- echo 'reinstall lektor plugins'
- lektor project-info --output-path
- lektor plugins reinstall
- echo 'building lektor 3 more times to get translations in place'
- lektor build --output-path public && lektor build --output-path public && lektor build --output-path public
artifacts:
paths:
- public
- i18n
rules:
- when: always
check_new_strings:
cache:
key: $CI_PROJECT_PATH_SLUG.${CI_COMMIT_REF_SLUG}
paths:
- packages
- lego
- apt-cache
- venv
- .cache/pip
stage: test_l10n
needs: [pages]
allow_failure: true
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- if: '$CI_COMMIT_BRANCH == "translations"'
when: never
- changes:
- content/**/*.lr
- templates/**/*
script:
- *apt-template
- DEBIAN_FRONTEND=noninteractive apt-get install gettext git python3-dev python3-setuptools i18nspector python3-polib python3-requests ca-certificates apt-utils -y
- git clone https://gitlab.torproject.org/tpo/community/l10n.git
- echo 'lets see if there are any updates in the strings for translation'
- l10n/bin/check_po_status.py $TRANSLATION_BRANCH
artifacts:
paths:
- public
- i18n
- l10n
check_l10n:
allow_failure: true
cache:
key: $CI_PROJECT_PATH_SLUG.${CI_COMMIT_REF_SLUG}
paths:
- packages
- lego
- apt-cache
- venv
- i18n
- .cache/pip
stage: test_l10n
needs: [pages]
only:
- translations
script:
- DEBIAN_FRONTEND=noninteractive apt-get install gettext i18nspector python3-polib ca-certificates -y
- echo 'lets see if there are any broken links on the translations'
- l10n/bin/check_markdown_links.py i18n/