mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 06:05:29 -04:00
Docker: User build context for precommit test
This commit is contained in:
parent
e861a83b17
commit
74473a6d04
6 changed files with 112 additions and 76 deletions
|
|
@ -2,55 +2,13 @@ FROM ubuntu:20.04
|
|||
|
||||
# author: Ole Schuett
|
||||
|
||||
# Install clang-format, shellcheck, and other Ubuntu packages.
|
||||
# https://github.com/koalaman/shellcheck
|
||||
# https://clang.llvm.org/docs/ClangFormat.html
|
||||
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && \
|
||||
apt-get update -qq && apt-get install -qq --no-install-recommends \
|
||||
ca-certificates \
|
||||
clang-format \
|
||||
git \
|
||||
less \
|
||||
nano \
|
||||
npm \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-wheel \
|
||||
python3-setuptools \
|
||||
shellcheck \
|
||||
wget \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install markdownlint-cli and dependencies.
|
||||
# https://github.com/DavidAnson/markdownlint
|
||||
# https://github.com/igorshubovych/markdownlint-cli
|
||||
WORKDIR /opt/cp2k-precommit
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm install .
|
||||
RUN ln -s /opt/cp2k-precommit/node_modules/markdownlint-cli/markdownlint.js /usr/bin/markdownlint
|
||||
|
||||
# Install black, flask, gunicorn, and dependencies.
|
||||
# https://github.com/psf/black
|
||||
COPY requirements.txt .
|
||||
RUN pip3 install --quiet -r requirements.txt
|
||||
|
||||
# Install shfmt.
|
||||
# https://github.com/mvdan/sh
|
||||
RUN wget -q https://github.com/mvdan/sh/releases/download/v3.2.2/shfmt_v3.2.2_linux_amd64 && \
|
||||
echo '3a32a69286a19491a81fcd854154f0d886c379ff28d99e32d5594490b8bbef4b shfmt_v3.2.2_linux_amd64' | sha256sum --check && \
|
||||
chmod +x shfmt_v3.2.2_linux_amd64 && \
|
||||
ln -s /opt/cp2k-precommit/shfmt_v3.2.2_linux_amd64 /usr/bin/shfmt
|
||||
|
||||
# Clone cp2k repository (needed for CI mode).
|
||||
RUN git clone --quiet --recursive --single-branch -b master https://github.com/cp2k/cp2k.git /workspace/cp2k
|
||||
|
||||
# Install Flask app.
|
||||
COPY precommit_server.py .
|
||||
COPY . /opt/cp2k-precommit/
|
||||
RUN ./install_requirements.sh
|
||||
|
||||
ARG REVISION
|
||||
ENV REVISION=${REVISION}
|
||||
|
||||
COPY entrypoint.sh .
|
||||
CMD ["./entrypoint.sh"]
|
||||
CMD ["gunicorn", "--bind=:8080", "--workers=1", "--threads=8", "--timeout=0", "precommit_server:app"]
|
||||
|
||||
#EOF
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
# author: Ole Schuett
|
||||
|
||||
trap "exit" INT
|
||||
|
||||
if [ -z "${GIT_REF}" ]; then
|
||||
# Server mode.
|
||||
gunicorn --bind=:8080 --workers=1 --threads=8 --timeout=0 precommit_server:app &
|
||||
wait # Can be interrupted with ctrl-C.
|
||||
else
|
||||
# CI mode.
|
||||
echo -e "\n========== Fetching Git Commit =========="
|
||||
cd /workspace/cp2k
|
||||
git fetch --quiet origin "${GIT_BRANCH}"
|
||||
git reset --quiet --hard "${GIT_REF}"
|
||||
git submodule update --init --recursive
|
||||
git --no-pager log -1 --pretty='%nCommitSHA: %H%nCommitTime: %ci%nCommitAuthor: %an%nCommitSubject: %s%n'
|
||||
|
||||
echo -e "\n========== Starting Precommit Server =========="
|
||||
cd ./tools/precommit/
|
||||
gunicorn --bind=:8080 --workers=1 --threads=8 --timeout=0 precommit_server:app &> /workspace/precommit_server.logs &
|
||||
sleep 3
|
||||
cat /workspace/precommit_server.logs
|
||||
|
||||
echo -e "\n========== Running Precommit Checks =========="
|
||||
export CP2K_PRECOMMIT_SERVER="http://127.0.0.1:8080"
|
||||
./precommit.py --no-cache --progressbar-wait=10 || true
|
||||
fi
|
||||
|
||||
#EOF
|
||||
42
tools/precommit/install_requirements.sh
Executable file
42
tools/precommit/install_requirements.sh
Executable file
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
# author: Ole Schuett
|
||||
|
||||
# Install clang-format, shellcheck, and other Ubuntu packages.
|
||||
# https://github.com/koalaman/shellcheck
|
||||
# https://clang.llvm.org/docs/ClangFormat.html
|
||||
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
|
||||
apt-get update -qq
|
||||
apt-get install -qq --no-install-recommends \
|
||||
ca-certificates \
|
||||
clang-format \
|
||||
git \
|
||||
less \
|
||||
nano \
|
||||
npm \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-wheel \
|
||||
python3-setuptools \
|
||||
shellcheck \
|
||||
wget
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install markdownlint-cli and dependencies.
|
||||
# https://github.com/DavidAnson/markdownlint
|
||||
# https://github.com/igorshubovych/markdownlint-cli
|
||||
npm install .
|
||||
ln -s /opt/cp2k-precommit/node_modules/markdownlint-cli/markdownlint.js /usr/bin/markdownlint
|
||||
|
||||
# Install black, flask, gunicorn, and dependencies.
|
||||
# https://github.com/psf/black
|
||||
pip3 install --quiet -r requirements.txt
|
||||
|
||||
# Install shfmt.
|
||||
# https://github.com/mvdan/sh
|
||||
wget -q https://github.com/mvdan/sh/releases/download/v3.2.2/shfmt_v3.2.2_linux_amd64
|
||||
echo '3a32a69286a19491a81fcd854154f0d886c379ff28d99e32d5594490b8bbef4b shfmt_v3.2.2_linux_amd64' | sha256sum --check
|
||||
chmod +x shfmt_v3.2.2_linux_amd64
|
||||
ln -s /opt/cp2k-precommit/shfmt_v3.2.2_linux_amd64 /usr/bin/shfmt
|
||||
|
||||
#EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue