Skip to content
This repository was archived by the owner on Mar 22, 2023. It is now read-only.

Commit 8ce5552

Browse files
CI: add Ubuntu 21.10 docker and enable it in nigthly build
1 parent c51c180 commit 8ce5552

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

.github/workflows/nightly.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
"OS=opensuse-tumbleweed OS_VER=latest",
4242
"OS=ubuntu OS_VER=18.04",
4343
"OS=ubuntu OS_VER=21.04",
44+
"OS=ubuntu OS_VER=21.10",
4445
"OS=ubuntu OS_VER=devel"]
4546
steps:
4647
- name: Clone the git repo
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# SPDX-License-Identifier: BSD-3-Clause
2+
# Copyright 2016-2022, Intel Corporation
3+
4+
#
5+
# Dockerfile - a 'recipe' for Docker to build an image of ubuntu-based
6+
# environment prepared for running libpmemobj-cpp tests.
7+
#
8+
9+
# Pull base image
10+
FROM registry.hub.docker.com/library/ubuntu:21.10
11+
12+
13+
# Set required environment variables
14+
ENV OS ubuntu
15+
ENV OS_VER 21.10
16+
ENV PACKAGE_MANAGER deb
17+
ENV NOTTY 1
18+
19+
# Additional parameters to build docker without building components
20+
ARG SKIP_VALGRIND_BUILD
21+
ARG SKIP_PMDK_BUILD
22+
23+
# Base development packages
24+
ARG BASE_DEPS="\
25+
cmake \
26+
build-essential \
27+
git"
28+
29+
# Dependencies for compiling libpmemobj-cpp project
30+
ARG LIBPMEMOBJ_CPP_DEPS="\
31+
libatomic1 \
32+
libtbb-dev"
33+
34+
# PMDK's dependencies (optional; libpmemobj-dev package may be used instead)
35+
ARG PMDK_DEPS="\
36+
autoconf \
37+
automake \
38+
debhelper \
39+
devscripts \
40+
gdb \
41+
libdaxctl-dev \
42+
libndctl-dev \
43+
pandoc \
44+
python3"
45+
46+
# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
47+
ARG VALGRIND_DEPS="\
48+
autoconf \
49+
automake"
50+
51+
# Examples (optional)
52+
ARG EXAMPLES_DEPS="\
53+
libncurses5-dev \
54+
libsfml-dev"
55+
56+
# Documentation (optional)
57+
ARG DOC_DEPS="\
58+
doxygen \
59+
graphviz"
60+
61+
# Tests (optional)
62+
ARG TESTS_DEPS="\
63+
gdb \
64+
libc6-dbg \
65+
libunwind-dev"
66+
67+
# Misc for our builds/CI (optional)
68+
ARG MISC_DEPS="\
69+
clang \
70+
clang-format-9 \
71+
libtext-diff-perl \
72+
pkg-config \
73+
sudo \
74+
whois"
75+
76+
ENV DEBIAN_FRONTEND noninteractive
77+
78+
# Update the apt cache and install basic tools
79+
RUN apt-get update \
80+
&& apt-get install -y --no-install-recommends \
81+
${BASE_DEPS} \
82+
${LIBPMEMOBJ_CPP_DEPS} \
83+
${PMDK_DEPS} \
84+
${VALGRIND_DEPS} \
85+
${EXAMPLES_DEPS} \
86+
${DOC_DEPS} \
87+
${TESTS_DEPS} \
88+
${MISC_DEPS} \
89+
&& rm -rf /var/lib/apt/lists/*
90+
91+
# Install valgrind
92+
COPY install-valgrind.sh install-valgrind.sh
93+
RUN ./install-valgrind.sh
94+
95+
# Install pmdk
96+
COPY install-pmdk.sh install-pmdk.sh
97+
RUN ./install-pmdk.sh dpkg
98+
99+
# Add user
100+
ENV USER user
101+
ENV USERPASS pass
102+
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
103+
USER $USER

0 commit comments

Comments
 (0)