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

Update OSes #1282

Draft
wants to merge 4 commits into
base: stable-1.12
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 25 additions & 10 deletions .github/workflows/gha.yml
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@ env:
HOST_WORKDIR: ${{ github.workspace }}
TEST_TIMEOUT: 600
IMG_VER: latest
TYPE: debug

jobs:
linux:
@@ -25,16 +26,30 @@ jobs:
FORCE_IMAGE_ACTION: ${{ secrets.FORCE_IMAGE_ACTION }}
WORKDIR: utils/docker
strategy:
fail-fast: false
matrix:
CONFIG: ["TYPE=debug OS=fedora OS_VER=32 PUSH_IMAGE=1",
"TYPE=debug OS=ubuntu OS_VER=20.04 PUSH_IMAGE=1 CHECK_CPP_STYLE=1",
"TYPE=debug OS=ubuntu OS_VER=20.04 COVERAGE=1",
"TYPE=release OS=fedora OS_VER=32",
"TYPE=release OS=ubuntu OS_VER=20.04",
"TYPE=valgrind OS=ubuntu OS_VER=20.04",
"TYPE=memcheck_drd OS=ubuntu OS_VER=20.04",
"TYPE=package OS=fedora OS_VER=32",
"TYPE=package OS=ubuntu OS_VER=20.04"]
CONFIG: ["TYPE=debug OS=fedora OS_VER=36 PUSH_IMAGE=1",
"TYPE=debug OS=ubuntu OS_VER=22.04 PUSH_IMAGE=1 CHECK_CPP_STYLE=0",
"TYPE=debug OS=ubuntu OS_VER=22.04 COVERAGE=1",
"TYPE=release OS=fedora OS_VER=36",
"TYPE=release OS=ubuntu OS_VER=22.04",
"TYPE=valgrind OS=ubuntu OS_VER=22.04",
"TYPE=memcheck_drd OS=ubuntu OS_VER=22.04",
"TYPE=package OS=fedora OS_VER=36",
"TYPE=package OS=ubuntu OS_VER=22.04",
"OS=centos OS_VER=8",
"OS=archlinux-base OS_VER=latest",
"OS=debian OS_VER=testing",
"OS=debian OS_VER=unstable",
"OS=fedora OS_VER=35",
"OS=fedora OS_VER=rawhide PUSH_IMAGE=0 TESTS_PMREORDER=0",
"TYPE=package OS=fedora OS_VER=rawhide",
"OS=opensuse-leap OS_VER=latest",
"OS=opensuse-tumbleweed OS_VER=latest",
"OS=ubuntu OS_VER=18.04",
"OS=ubuntu OS_VER=20.04",
"OS=ubuntu OS_VER=rolling PUSH_IMAGE=0",
"TYPE=package OS=ubuntu OS_VER=rolling"]
steps:
- name: Get release version
if: github.event_name == 'release'
@@ -85,7 +100,7 @@ jobs:
github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/stable-')
strategy:
matrix:
CONFIG: ["TYPE=doc OS=fedora OS_VER=32"]
CONFIG: ["TYPE=doc OS=fedora OS_VER=36"]
steps:
- name: Set image version for stable branch
# doc update happens only on stable branch (not on PR), so we check only for heads ref
6 changes: 3 additions & 3 deletions .github/workflows/other_OSes.yml
Original file line number Diff line number Diff line change
@@ -30,13 +30,13 @@ jobs:
"OS=archlinux-base OS_VER=latest",
"OS=debian OS_VER=testing",
"OS=debian OS_VER=unstable",
"OS=fedora OS_VER=33",
"OS=fedora OS_VER=rawhide PUSH_IMAGE=0",
"OS=fedora OS_VER=35",
"OS=fedora OS_VER=rawhide PUSH_IMAGE=0 TESTS_PMREORDER=0",
"TYPE=package OS=fedora OS_VER=rawhide",
"OS=opensuse-leap OS_VER=latest",
"OS=opensuse-tumbleweed OS_VER=latest",
"OS=ubuntu OS_VER=18.04",
"OS=ubuntu OS_VER=20.10",
"OS=ubuntu OS_VER=20.04",
"OS=ubuntu OS_VER=rolling PUSH_IMAGE=0",
"TYPE=package OS=ubuntu OS_VER=rolling"]
steps:
2 changes: 1 addition & 1 deletion utils/docker/images/Dockerfile.archlinux-base-latest
Original file line number Diff line number Diff line change
@@ -72,6 +72,6 @@ RUN echo $USERPASS > $PFILE
RUN echo $USERPASS >> $PFILE
RUN passwd $USER < $PFILE
RUN rm -f $PFILE
RUN sed -i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
RUN sed -i 's/# %wheel/%wheel/g' /etc/sudoers
RUN gpasswd wheel -a $USER
USER $USER
3 changes: 1 addition & 2 deletions utils/docker/images/Dockerfile.debian-testing
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of debian-based
@@ -28,7 +28,6 @@ RUN apt-get update \
asciidoc \
autoconf \
clang \
clang-format \
cmake \
curl \
debhelper \
3 changes: 1 addition & 2 deletions utils/docker/images/Dockerfile.debian-unstable
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of debian-based
@@ -28,7 +28,6 @@ RUN apt-get update \
asciidoc \
autoconf \
clang \
clang-format \
cmake \
curl \
debhelper \
80 changes: 0 additions & 80 deletions utils/docker/images/Dockerfile.fedora-32

This file was deleted.

81 changes: 0 additions & 81 deletions utils/docker/images/Dockerfile.fedora-33

This file was deleted.

106 changes: 106 additions & 0 deletions utils/docker/images/Dockerfile.fedora-35
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of fedora-based
# environment prepared for running libpmemobj-cpp tests.
#

# Pull base image
FROM registry.fedoraproject.org/fedora:35
MAINTAINER [email protected]

# Set required environment variables
ENV OS fedora
ENV OS_VER 35
ENV PACKAGE_MANAGER rpm
ENV NOTTY 1

# Additional parameters to build docker without building components
ARG SKIP_VALGRIND_BUILD
ARG SKIP_PMDK_BUILD

# Base development packages
ARG BASE_DEPS="\
cmake \
gcc \
gcc-c++ \
git \
make"

# Dependencies for compiling libpmemobj-cpp project
ARG LIBPMEMOBJ_CPP_DEPS="\
libatomic \
tbb-devel"

# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
ARG PMDK_DEPS="\
autoconf \
automake \
daxctl-devel \
gdb \
man \
ndctl-devel \
pandoc \
python3 \
rpm-build \
rpm-build-libs \
rpmdevtools \
which"

# pmem's Valgrind dependencies (optional; valgrind-devel package may be used instead)
ARG VALGRIND_DEPS="\
autoconf \
automake"

# Examples (optional)
ARG EXAMPLES_DEPS="\
ncurses-devel \
SFML-devel"

# Documentation (optional)
ARG DOC_DEPS="\
doxygen"

# Tests (optional)
# NOTE: glibc is installed as a separate command; see below
ARG TESTS_DEPS="\
gdb \
libunwind-devel"

# Misc for our builds/CI (optional)
ARG MISC_DEPS="\
clang \
perl-Text-Diff \
pkgconf \
sudo"

# Update packages and install basic tools
RUN dnf update -y \
&& dnf install -y \
${BASE_DEPS} \
${LIBPMEMOBJ_CPP_DEPS} \
${PMDK_DEPS} \
${VALGRIND_DEPS} \
${EXAMPLES_DEPS} \
${DOC_DEPS} \
${TESTS_DEPS} \
${MISC_DEPS} \
&& dnf debuginfo-install -y glibc \
&& dnf clean all

# Install valgrind
COPY install-valgrind.sh install-valgrind.sh
RUN ./install-valgrind.sh

# Install pmdk
COPY install-pmdk.sh install-pmdk.sh
RUN ./install-pmdk.sh rpm

# Add user
ENV USER user
ENV USERPASS pass
RUN useradd -m $USER \
&& echo "$USER:$USERPASS" | chpasswd \
&& gpasswd wheel -a $USER
USER $USER
107 changes: 107 additions & 0 deletions utils/docker/images/Dockerfile.fedora-36
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of fedora-based
# environment prepared for running libpmemobj-cpp tests.
#

# Pull base image
FROM registry.fedoraproject.org/fedora:36
MAINTAINER igor.chorazewicz@intel.com

# Set required environment variables
ENV OS fedora
ENV OS_VER 36
ENV PACKAGE_MANAGER rpm
ENV NOTTY 1

# Additional parameters to build docker without building components
ARG SKIP_VALGRIND_BUILD
ARG SKIP_PMDK_BUILD

# Base development packages
ARG BASE_DEPS="\
cmake \
gcc \
gcc-c++ \
git \
make"

# Dependencies for compiling libpmemobj-cpp project
ARG LIBPMEMOBJ_CPP_DEPS="\
libatomic \
tbb-devel"

# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
ARG PMDK_DEPS="\
autoconf \
automake \
daxctl-devel \
gdb \
man \
ndctl-devel \
pandoc \
python3 \
rpm-build \
rpm-build-libs \
rpmdevtools \
which"

# pmem's Valgrind (optional; valgrind-devel may be used instead)
ARG VALGRIND_DEPS="\
autoconf \
automake"

# Examples (optional)
ARG EXAMPLES_DEPS="\
ncurses-devel \
SFML-devel"

# Documentation (optional)
ARG DOC_DEPS="\
doxygen"

# Tests (optional)
# NOTE: glibc is installed as a separate command; see below
ARG TESTS_DEPS="\
gdb \
libunwind-devel"

# Misc for our builds/CI (optional)
ARG MISC_DEPS="\
clang \
hub \
perl-Text-Diff \
pkgconf \
sudo"

# Update packages and install basic tools
RUN dnf update -y \
&& dnf install -y \
${BASE_DEPS} \
${LIBPMEMOBJ_CPP_DEPS} \
${PMDK_DEPS} \
${VALGRIND_DEPS} \
${EXAMPLES_DEPS} \
${DOC_DEPS} \
${TESTS_DEPS} \
${MISC_DEPS} \
&& dnf debuginfo-install -y glibc \
&& dnf clean all

# Install valgrind
COPY install-valgrind.sh install-valgrind.sh
RUN ./install-valgrind.sh

# Install pmdk
COPY install-pmdk.sh install-pmdk.sh
RUN ./install-pmdk.sh rpm

# Add user
ENV USER user
ENV USERPASS pass
RUN useradd -m $USER \
&& echo "$USER:$USERPASS" | chpasswd \
&& gpasswd wheel -a $USER
USER $USER
2 changes: 1 addition & 1 deletion utils/docker/images/Dockerfile.opensuse-leap-latest
Original file line number Diff line number Diff line change
@@ -87,7 +87,7 @@ RUN echo $USERPASS > $PFILE
RUN echo $USERPASS >> $PFILE
RUN passwd $USER < $PFILE
RUN rm -f $PFILE
RUN sed -i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
RUN sed -i 's/# %wheel/%wheel/g' /etc/sudoers
RUN groupadd wheel
RUN gpasswd wheel -a $USER
USER $USER
3 changes: 2 additions & 1 deletion utils/docker/images/Dockerfile.opensuse-tumbleweed-latest
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ RUN zypper install -y \
python3 \
rpm-build \
rpmdevtools \
shadow \
sudo \
systemd \
tar \
@@ -89,7 +90,7 @@ RUN echo $USERPASS > $PFILE
RUN echo $USERPASS >> $PFILE
RUN passwd $USER < $PFILE
RUN rm -f $PFILE
RUN sed -i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
RUN sed -i 's/# %wheel/%wheel/g' /etc/sudoers
RUN groupadd wheel
RUN gpasswd wheel -a $USER
USER $USER
3 changes: 1 addition & 2 deletions utils/docker/images/Dockerfile.ubuntu-18.04
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of ubuntu-based
@@ -39,7 +39,6 @@ RUN apt-get update \
asciidoc \
autoconf \
clang \
clang-format-9 \
cmake \
curl \
debhelper \
3 changes: 1 addition & 2 deletions utils/docker/images/Dockerfile.ubuntu-20.04
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of ubuntu-based
@@ -29,7 +29,6 @@ RUN apt-get update \
asciidoc \
autoconf \
clang \
clang-format-9 \
cmake \
curl \
debhelper \
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of ubuntu-based
# environment prepared for running libpmemobj-cpp tests.
#

# Pull base image
FROM ubuntu:20.10
FROM registry.hub.docker.com/library/ubuntu:22.04
MAINTAINER igor.chorazewicz@intel.com

# Set required environment variables
ENV OS ubuntu
ENV OS_VER 20.10
ENV OS_VER 22.04
ENV PACKAGE_MANAGER deb
ENV NOTTY 1

@@ -21,43 +21,84 @@ ARG SKIP_VALGRIND_BUILD
ARG SKIP_PMDK_BUILD
ARG SKIP_SCRIPTS_DOWNLOAD

ENV DEBIAN_FRONTEND noninteractive
# Base development packages
ARG BASE_DEPS="\
cmake \
build-essential \
git"

# Update the Apt cache and install basic tools
RUN apt-get update \
&& apt-get install -y software-properties-common \
asciidoc \
# Dependencies for compiling libpmemobj-cpp project
ARG LIBPMEMOBJ_CPP_DEPS="\
libatomic1 \
libtbb-dev"

# PMDK's dependencies (optional; libpmemobj-dev package may be used instead)
ARG PMDK_DEPS="\
autoconf \
clang \
clang-format-9 \
cmake \
curl \
automake \
debhelper \
devscripts \
doxygen \
gcc \
gdb \
git \
graphviz \
libdaxctl-dev \
libjson-c-dev \
libkmod-dev \
libncurses5-dev \
libndctl-dev \
libsfml-dev \
libtbb-dev \
libtext-diff-perl \
libudev-dev \
libunwind-dev \
llvm \
pandoc \
pkg-config \
python3"

# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
ARG VALGRIND_DEPS="\
autoconf \
automake"

# Examples (optional)
ARG EXAMPLES_DEPS="\
libncurses5-dev \
libsfml-dev"

# Documentation (optional)
ARG DOC_DEPS="\
doxygen \
graphviz"

# Tests (optional)
ARG TESTS_DEPS="\
gdb \
libc6-dbg \
libunwind-dev"

# Codecov - coverage tool (optional)
ARG CODECOV_DEPS="\
curl \
llvm"

# Coverity - static analysis (optional)
ARG COVERITY_DEPS="\
curl \
ruby \
wget"

# Misc for our builds/CI (optional)
ARG MISC_DEPS="\
clang \
libtext-diff-perl \
pkg-config \
sudo \
tzdata \
uuid-dev \
wget \
whois \
whois"

ENV DEBIAN_FRONTEND noninteractive

# Update the apt cache and install basic tools
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
${BASE_DEPS} \
${LIBPMEMOBJ_CPP_DEPS} \
${PMDK_DEPS} \
${VALGRIND_DEPS} \
${EXAMPLES_DEPS} \
${DOC_DEPS} \
${TESTS_DEPS} \
${CODECOV_DEPS} \
${COVERITY_DEPS} \
${MISC_DEPS} \
&& rm -rf /var/lib/apt/lists/*

# Install valgrind
@@ -77,4 +118,4 @@ RUN ./download-scripts.sh
ENV USER user
ENV USERPASS pass
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
USER $USER
USER $USER
3 changes: 1 addition & 2 deletions utils/docker/images/Dockerfile.ubuntu-rolling
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2016-2021, Intel Corporation
# Copyright 2016-2022, Intel Corporation

#
# Dockerfile - a 'recipe' for Docker to build an image of ubuntu-based
@@ -28,7 +28,6 @@ RUN apt-get update \
asciidoc \
autoconf \
clang \
clang-format-9 \
cmake \
curl \
debhelper \
6 changes: 3 additions & 3 deletions utils/docker/images/install-pmdk.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2018-2021, Intel Corporation
# Copyright 2018-2022, Intel Corporation

#
# install-pmdk.sh - installs libpmem & libpmemobj
@@ -11,8 +11,8 @@ set -e

PACKAGE_MANAGER=${1}

# master: 1.11.0, 02.07.2021
PMDK_VERSION="8583fcfd68764ac6779e6f93db89b06971b26704"
# common: 1.12.0 release, 24.05.2022
PMDK_VERSION="73d8f958e855904dc0776a7d77d0f0d3698a65b1"

if [ "${SKIP_PMDK_BUILD}" ]; then
echo "Variable 'SKIP_PMDK_BUILD' is set; skipping building PMDK"