Skip to content
Snippets Groups Projects
Commit 0dbdd420 authored by Yaroslav Lobankov's avatar Yaroslav Lobankov Committed by Yaroslav Lobankov
Browse files

ci: add actions with installing build/test deps

This patch adds actions with installing deps for Debian, FreeBSD, and
OSX operation systems. Also, it adds an action with installing deps for
Jepsen testing. Debian, FreeBSD, and OSX actions should be used before
running tests on the corresponding operation systems. Jepsen action
should be used before running Jepsen tests.

Reasoning:

1. The makefile w/o targets with deps installation is OS-independent.
   It should work on all systems.

2. Deps installation is more about env preparation rather than building
   and testing. Moreover, it is OS-dependent. So it's logical to take it
   outside the makefile into a GitHub action.

3. If we need testing on other operation systems, for example, CentOS,
   we will just create a special action with deps installation for that.
   No changes for the makefile will be needed. All should work out of
   the box.

NO_DOC=ci
NO_TEST=ci
NO_CHANGELOG=ci
parent cbaf71ed
No related branches found
No related tags found
No related merge requests found
name: Install Deps Debian
description: Install build and test dependencies on Debian-based systems
runs:
using: composite
steps:
- run: |
apt-get --allow-releaseinfo-change update
apt-get -y -f install \
build-essential \
ninja-build \
cmake \
lua5.1 \
luarocks \
lcov \
ruby-dev \
liblz4-dev \
autoconf \
automake \
libtool
luarocks install luacheck 0.26.1
gem install coveralls-lcov
shell: bash
name: Install Deps FreeBSD
description: Install build and test dependencies on FreeBSD systems
runs:
using: composite
steps:
- env:
PIP_URL: https://bootstrap.pypa.io/get-pip.py
run: |
pkg install -y \
cmake \
gmake \
icu \
libiconv \
python38 \
autoconf \
automake \
libtool
which python3 || ln -s /usr/local/bin/python3.8 /usr/local/bin/python3
python3 -m pip -V || curl -fsSL ${PIP_URL} | python3
shell: bash
name: Install Deps Jepsen
description: Install dependencies for Jepsen testing
runs:
using: composite
steps:
- env:
CLOJURE_URL: https://download.clojure.org/install/linux-install-1.10.1.561.sh
LEIN_URL: https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
TERRAFORM_URL: https://releases.hashicorp.com/terraform/0.13.1/terraform_0.13.1_linux_amd64.zip
BIN_DIR: /usr/local/bin
run: |
apt-get --allow-releaseinfo-change update
apt-get -y -f install \
openjdk-8-jre \
openjdk-8-jre-headless \
libjna-java \
gnuplot \
graphviz \
zip \
unzip \
openssh-client \
jq
curl ${CLOJURE_URL} | bash
curl ${LEIN_URL} > ${BIN_DIR}/lein
chmod a+x ${BIN_DIR}/lein
curl -O ${TERRAFORM_URL}
unzip -o $(basename ${TERRAFORM_URL}) terraform -d ${BIN_DIR}
shell: bash
name: Install Deps OSX
description: Install build and test dependencies on OSX systems
runs:
using: composite
steps:
- run: |
# FIXME: Temporary pinned python3 to specific version (python@3.8)
# to avoid 'gevent' package installation failure described in
# gevent/gevent#1721. Change to python3 when the issue is resolved.
PKGS='openssl
readline
curl
icu4c
libiconv
zlib
cmake
python@3.8
autoconf
automake
libtool'
# Try to install the packages or upgrade them if the packages are
# already installed.
brew install --force ${PKGS} || brew upgrade ${PKGS}
shell: bash
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment