Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Dockerfile.gitlab-docs-lint « dockerfiles - gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 71bf8b768334565dd0f109d7601fb920bf0b10ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
############################
#
# Image the contains the dependencies to run the lints.
# It downloads the gitlab-docs repository based on the
# branch the Docker image is invoked from.
# Based on Alpine.
#
############################

# RUBY_VERSION and ALPINE_VERSION are defined in .gitlab-ci.yml
ARG RUBY_VERSION
ARG ALPINE_VERSION

FROM ruby:${RUBY_VERSION}-alpine${ALPINE_VERSION}
MAINTAINER GitLab Technical Writing team

# VALE_VERSION and MARKDOWNLINT_VERSION are defined in .gitlab-ci.yml
ARG VALE_VERSION
ARG MARKDOWNLINT_VERSION
ENV GOBIN=/usr/local/bin

# Install dependencies
RUN apk add --no-cache -U \
    bash        \
    build-base  \
    curl        \
    git         \
    gnupg       \
    gzip        \
    grep        \
    libcurl     \
    libxslt     \
    libxslt-dev \
    nodejs      \
    openssl     \
    pngquant    \
    ruby-dev    \
    tar         \
    xz          \
    xz-dev      \
    go          \
    yarn

# Do not install rdoc to save some space
RUN echo 'gem: --no-document' >> /etc/gemrc

# Install vale
RUN curl -L https://github.com/errata-ai/vale/archive/v${VALE_VERSION}.tar.gz -o v${VALE_VERSION}.tar.gz && \
    tar -xvzf v${VALE_VERSION}.tar.gz && \
    cd vale-${VALE_VERSION} && \
    os=linux exe=vale make && \
    make install && \
    cd .. && \
    rm -r vale-${VALE_VERSION} && \
    rm v${VALE_VERSION}.tar.gz && \
    apk del go

# Set up needed environment variables that are called with --build-arg when
# the Docker image is built (see .gitlab-ci.yml).
ARG CI_COMMIT_REF_NAME
# If CI_COMMIT_REF_NAME is not set (local development), set it to master
ENV CI_COMMIT_REF_NAME ${CI_COMMIT_REF_NAME:-master}

WORKDIR /tmp

# markdownlint-cli pinned to control when new versions are put in place.
RUN yarn global add markdownlint-cli@${MARKDOWNLINT_VERSION} && yarn cache clean

RUN wget https://gitlab.com/gitlab-org/gitlab-docs/-/archive/$CI_COMMIT_REF_NAME/gitlab-docs-$CI_COMMIT_REF_NAME.tar.bz2 \
  && tar xvjf gitlab-docs-$CI_COMMIT_REF_NAME.tar.bz2 \
  && mv gitlab-docs-$CI_COMMIT_REF_NAME gitlab-docs \
  && rm gitlab-docs-$CI_COMMIT_REF_NAME.tar.bz2

RUN cd gitlab-docs \
  && yarn install --frozen-lockfile \
  && NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install --jobs 4