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

Commit aa72466

Browse files
authored
Merge pull request #735 from lukaszstolarczuk/cleanup-CI-files
Cleanup CI files
2 parents a003549 + 4b840ed commit aa72466

20 files changed

+378
-210
lines changed

.github/workflows/gha.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ name: CPP
1111
on: [push, pull_request]
1212

1313
env:
14+
REPO: libpmemobj-cpp
1415
GITHUB_REPO: pmem/libpmemobj-cpp
1516
DOCKERHUB_REPO: pmem/libpmemobj-cpp
1617

@@ -19,6 +20,8 @@ jobs:
1920
name: Linux
2021
runs-on: ubuntu-latest
2122
env:
23+
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
24+
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
2225
HOST_WORKDIR: /home/runner/work/libpmemobj-cpp/libpmemobj-cpp
2326
WORKDIR: utils/docker
2427
strategy:
@@ -35,10 +38,9 @@ jobs:
3538
"N=10 OS=ubuntu OS_VER=19.10 TYPE=coverity"]
3639
steps:
3740
- name: Clone the git repo
38-
uses: actions/checkout@v1
39-
40-
- name: Change ownership of the repo
41-
run: sudo chown -R 1000.1000 $HOST_WORKDIR
41+
uses: actions/checkout@v2
42+
with:
43+
fetch-depth: 50
4244

4345
- name: Pull or rebuild the image
4446
run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh
@@ -85,7 +87,9 @@ jobs:
8587
key: vcpkg-installed-45e5a67
8688

8789
- name: Clone the git repo
88-
uses: actions/checkout@v1
90+
uses: actions/checkout@v2
91+
with:
92+
fetch-depth: 50
8993

9094
- name: Use old vcpkg for pmdk to build properly
9195
working-directory: C:/vcpkg

utils/docker/build.sh

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -32,44 +32,47 @@
3232

3333
#
3434
# build-local.sh - runs a Docker container from a Docker image with environment
35-
# prepared for running libpmemobj-cpp tests and run those tests.
35+
# prepared for running libpmemobj-cpp builds and tests.
3636
#
3737
#
3838
# Notes:
3939
# - run this script from its location or set the variable 'HOST_WORKDIR' to
4040
# where the root of this project is on the host machine,
4141
# - set variables 'OS' and 'OS_VER' properly to a system you want to build this
4242
# repo on (for proper values take a look on the list of Dockerfiles at the
43-
# utils/docker/images directory), e.g. OS=ubuntu, OS_VER=19.04.
43+
# utils/docker/images directory), e.g. OS=ubuntu, OS_VER=19.10.
4444
#
4545

4646
set -e
47+
48+
source $(dirname $0)/set-ci-vars.sh
49+
source $(dirname $0)/set-vars.sh
4750
source $(dirname $0)/valid-branches.sh
4851

49-
# Environment variables that can be customized (default values are after dash):
50-
export KEEP_CONTAINER=${KEEP_CONTAINER:-0}
52+
if [[ "$CI_EVENT_TYPE" != "cron" && "$CI_BRANCH" != "coverity_scan" \
53+
&& "$TYPE" == "coverity" ]]; then
54+
echo "INFO: Skip Coverity scan job if build is triggered neither by " \
55+
"'cron' nor by a push to 'coverity_scan' branch"
56+
exit 0
57+
fi
5158

59+
if [[ ( "$CI_EVENT_TYPE" == "cron" || "$CI_BRANCH" == "coverity_scan" )\
60+
&& "$TYPE" != "coverity" ]]; then
61+
echo "INFO: Skip regular jobs if build is triggered either by 'cron'" \
62+
" or by a push to 'coverity_scan' branch"
63+
exit 0
64+
fi
5265

5366
if [[ -z "$OS" || -z "$OS_VER" ]]; then
5467
echo "ERROR: The variables OS and OS_VER have to be set " \
55-
"(e.g. OS=ubuntu, OS_VER=19.04)."
68+
"(eg. OS=fedora, OS_VER=31)."
5669
exit 1
5770
fi
5871

5972
if [[ -z "$HOST_WORKDIR" ]]; then
60-
HOST_WORKDIR=$(readlink -f ../..)
61-
fi
62-
63-
if [[ "$TRAVIS_EVENT_TYPE" == "cron" || "$TRAVIS_BRANCH" == "coverity_scan" ]]; then
64-
if [[ "$TYPE" != "coverity" ]]; then
65-
echo "Skipping non-Coverity job for cron/Coverity build"
66-
exit 0
67-
fi
68-
else
69-
if [[ "$TYPE" == "coverity" ]]; then
70-
echo "Skipping Coverity job for non cron/Coverity build"
71-
exit 0
72-
fi
73+
echo "ERROR: The variable HOST_WORKDIR has to contain a path to " \
74+
"the root of this project on the host machine"
75+
exit 1
7376
fi
7477

7578
imageName=${DOCKERHUB_REPO}:1.9-${OS}-${OS_VER}
@@ -114,20 +117,20 @@ fi
114117
if [ -n "$DNS_SERVER" ]; then DNS_SETTING=" --dns=$DNS_SERVER "; fi
115118

116119
# Only run doc update on $GITHUB_REPO master or stable branch
117-
if [[ -z "${TRAVIS_BRANCH}" || -z "${TARGET_BRANCHES[${TRAVIS_BRANCH}]}" || "$TRAVIS_PULL_REQUEST" != "false" || "$TRAVIS_REPO_SLUG" != "${GITHUB_REPO}" ]]; then
120+
if [[ -z "${CI_BRANCH}" || -z "${TARGET_BRANCHES[${CI_BRANCH}]}" || "$CI_EVENT_TYPE" == "pull_request" || "$CI_REPO_SLUG" != "${GITHUB_REPO}" ]]; then
118121
AUTO_DOC_UPDATE=0
119122
fi
120123

121-
WORKDIR=/libpmemobj-cpp
122-
SCRIPTSDIR=$WORKDIR/utils/docker
123-
124-
# check if we are running on a CI (Travis or GitHub Actions)
124+
# Check if we are running on a CI (Travis or GitHub Actions)
125125
[ -n "$GITHUB_ACTIONS" -o -n "$TRAVIS" ] && CI_RUN="YES" || CI_RUN="NO"
126126

127127
# do not allocate a pseudo-TTY if we are running on GitHub Actions
128128
[ ! $GITHUB_ACTIONS ] && TTY='-t' || TTY=''
129129

130-
echo Building ${OS}-${OS_VER}
130+
WORKDIR=/libpmemobj-cpp
131+
SCRIPTSDIR=$WORKDIR/utils/docker
132+
133+
echo Building on ${OS}-${OS_VER}
131134

132135
# Run a container with
133136
# - environment variables set (--env)
@@ -138,21 +141,26 @@ docker run --privileged=true --name=$containerName -i $TTY \
138141
${docker_opts} \
139142
--env http_proxy=$http_proxy \
140143
--env https_proxy=$https_proxy \
141-
--env AUTO_DOC_UPDATE=$AUTO_DOC_UPDATE \
142-
--env GITHUB_TOKEN=$GITHUB_TOKEN \
143144
--env WORKDIR=$WORKDIR \
144145
--env SCRIPTSDIR=$SCRIPTSDIR \
145-
--env TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG \
146-
--env TRAVIS_BRANCH=$TRAVIS_BRANCH \
147-
--env TRAVIS_EVENT_TYPE=$TRAVIS_EVENT_TYPE \
146+
--env COVERAGE=$COVERAGE \
147+
--env AUTO_DOC_UPDATE=$AUTO_DOC_UPDATE \
148+
--env CI_RUN=$CI_RUN \
149+
--env TRAVIS=$TRAVIS \
150+
--env GITHUB_REPO=$GITHUB_REPO \
151+
--env CI_COMMIT_RANGE=$CI_COMMIT_RANGE \
152+
--env CI_COMMIT=$CI_COMMIT \
153+
--env CI_REPO_SLUG=$CI_REPO_SLUG \
154+
--env CI_BRANCH=$CI_BRANCH \
155+
--env CI_EVENT_TYPE=$CI_EVENT_TYPE \
156+
--env GITHUB_TOKEN=$GITHUB_TOKEN \
148157
--env COVERITY_SCAN_TOKEN=$COVERITY_SCAN_TOKEN \
149158
--env COVERITY_SCAN_NOTIFICATION_EMAIL=$COVERITY_SCAN_NOTIFICATION_EMAIL \
150-
--env COVERAGE=$COVERAGE \
151159
--env CHECK_CPP_STYLE=${CHECK_CPP_STYLE:-ON} \
152160
--env TESTS_LONG=${TESTS_LONG:-OFF} \
153161
--env TESTS_TBB=${TESTS_TBB:-ON} \
154-
--env CI_RUN=$CI_RUN \
155162
--env TZ='Europe/Warsaw' \
163+
--shm-size=4G \
156164
-v $HOST_WORKDIR:$WORKDIR \
157165
-v /etc/localtime:/etc/localtime \
158166
-w $SCRIPTSDIR \

utils/docker/images/Dockerfile.archlinux-base-latest

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,24 @@
3030
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3131

3232
#
33-
# Dockerfile - a 'recipe' for Docker to build an image of environment
34-
# prepared for running libpmemobj-cpp tests.
33+
Dockerfile - a 'recipe' for Docker to build an image of archlinux-based
34+
# environment prepared for running libpmemobj-cpp tests.
3535
#
3636

3737
# Pull base image
3838
FROM archlinux/base:latest
3939
MAINTAINER szymon.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS archlinux-base
43+
ENV OS_VER latest
44+
ENV PACKAGE_MANAGER pacman
45+
ENV NOTTY 1
46+
47+
# Additional parameters to build docker without building components
48+
ARG SKIP_VALGRIND_BUILD
49+
ARG SKIP_PMDK_BUILD
50+
4151
# Update the Apt cache and install basic tools
4252
RUN pacman -Syu --noconfirm
4353
RUN pacman -S --noconfirm \
@@ -95,9 +105,3 @@ USER $USER
95105

96106
# Clean the cache of packages
97107
RUN rm -rf /var/cache/pacman/pkg/*
98-
99-
# Set required environment variables
100-
ENV OS archlinux-base
101-
ENV OS_VER latest
102-
ENV PACKAGE_MANAGER pacman
103-
ENV NOTTY 1

utils/docker/images/Dockerfile.centos-8

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@
3838
FROM centos:8
3939
MAINTAINER szymon.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS centos
43+
ENV OS_VER 8
44+
ENV PACKAGE_MANAGER rpm
45+
ENV NOTTY 1
46+
47+
# Additional parameters to build docker without building components
48+
ARG SKIP_VALGRIND_BUILD
49+
ARG SKIP_PMDK_BUILD
50+
4151
RUN dnf update -y
4252
RUN dnf install -y epel-release
4353
RUN dnf install -y 'dnf-command(config-manager)'
@@ -103,10 +113,3 @@ RUN useradd -m $USER
103113
RUN echo $USERPASS | passwd $USER --stdin
104114
RUN gpasswd wheel -a $USER
105115
USER $USER
106-
107-
# Set required environment variables
108-
ENV OS centos
109-
ENV OS_VER 8
110-
ENV PACKAGE_MANAGER rpm
111-
ENV NOTTY 1
112-

utils/docker/images/Dockerfile.debian-testing

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,24 @@
3030
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3131

3232
#
33-
# Dockerfile - a 'recipe' for Docker to build an image of debian-unstable
33+
# Dockerfile - a 'recipe' for Docker to build an image of debian-based
3434
# environment prepared for running libpmemobj-cpp tests.
3535
#
3636

3737
# Pull base image
3838
FROM debian:testing
3939
MAINTAINER szymon.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS debian
43+
ENV OS_VER testing
44+
ENV PACKAGE_MANAGER deb
45+
ENV NOTTY 1
46+
47+
# Additional parameters to build docker without building components
48+
ARG SKIP_VALGRIND_BUILD
49+
ARG SKIP_PMDK_BUILD
50+
4151
ENV DEBIAN_FRONTEND noninteractive
4252

4353
# Update the Apt cache and install basic tools
@@ -90,9 +100,3 @@ ENV USER user
90100
ENV USERPASS pass
91101
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
92102
USER $USER
93-
94-
# Set required environment variables
95-
ENV OS debian
96-
ENV OS_VER testing
97-
ENV PACKAGE_MANAGER deb
98-
ENV NOTTY 1

utils/docker/images/Dockerfile.debian-unstable

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,24 @@
3030
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3131

3232
#
33-
# Dockerfile - a 'recipe' for Docker to build an image of debian-unstable
33+
# Dockerfile - a 'recipe' for Docker to build an image of debian-based
3434
# environment prepared for running libpmemobj-cpp tests.
3535
#
3636

3737
# Pull base image
3838
FROM debian:unstable
3939
MAINTAINER szymon.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS debian
43+
ENV OS_VER unstable
44+
ENV PACKAGE_MANAGER deb
45+
ENV NOTTY 1
46+
47+
# Additional parameters to build docker without building components
48+
ARG SKIP_VALGRIND_BUILD
49+
ARG SKIP_PMDK_BUILD
50+
4151
ENV DEBIAN_FRONTEND noninteractive
4252

4353
# Update the Apt cache and install basic tools
@@ -90,9 +100,3 @@ ENV USER user
90100
ENV USERPASS pass
91101
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
92102
USER $USER
93-
94-
# Set required environment variables
95-
ENV OS debian
96-
ENV OS_VER unstable
97-
ENV PACKAGE_MANAGER deb
98-
ENV NOTTY 1

utils/docker/images/Dockerfile.fedora-31

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@
3838
FROM fedora:31
3939
MAINTAINER szymon.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS fedora
43+
ENV OS_VER 31
44+
ENV PACKAGE_MANAGER rpm
45+
ENV NOTTY 1
46+
47+
# Additional parameters to build docker without building components
48+
ARG SKIP_VALGRIND_BUILD
49+
ARG SKIP_PMDK_BUILD
50+
4151
# Install basic tools
4252
RUN dnf update -y \
4353
&& dnf install -y \
@@ -93,10 +103,3 @@ RUN useradd -m $USER
93103
RUN echo "$USER:$USERPASS" | chpasswd
94104
RUN gpasswd wheel -a $USER
95105
USER $USER
96-
97-
# Set required environment variables
98-
ENV OS fedora
99-
ENV OS_VER 31
100-
ENV PACKAGE_MANAGER rpm
101-
ENV NOTTY 1
102-

utils/docker/images/Dockerfile.fedora-rawhide

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@
3838
FROM fedora:rawhide
3939
MAINTAINER szymom.romik@intel.com
4040

41+
# Set required environment variables
42+
ENV OS fedora
43+
ENV OS_VER rawhide
44+
ENV PACKAGE_MANAGER rpm
45+
ENV NOTTY 1
46+
4147
# Additional parameters to build docker without building components
4248
ARG SKIP_VALGRIND_BUILD
4349
ARG SKIP_PMDK_BUILD
@@ -56,6 +62,7 @@ RUN dnf update -y \
5662
daxctl-devel \
5763
doxygen \
5864
gcc \
65+
gcc-c++ \
5966
gdb \
6067
git \
6168
hub \
@@ -100,10 +107,3 @@ RUN useradd -m $USER
100107
RUN echo "$USER:$USERPASS" | chpasswd
101108
RUN gpasswd wheel -a $USER
102109
USER $USER
103-
104-
# Set required environment variables
105-
ENV OS fedora
106-
ENV OS_VER rawhide
107-
ENV PACKAGE_MANAGER rpm
108-
ENV NOTTY 1
109-

0 commit comments

Comments
 (0)