Merge branch 'master' into add-opts-to-argparse #3184
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Backend Test | |
on: | |
push: | |
paths-ignore: | |
- 'rst/**' | |
- '.github/workflows/*-translation.yml' | |
workflow_dispatch: | |
env: | |
# Skip building frontend in tarantoolctl rocks make | |
CMAKE_DUMMY_WEBUI: true | |
# Prerequisite for some etcd-related tests | |
ETCD_PATH: etcd-v2.3.8/etcd | |
jobs: | |
misc: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '16.8.0' | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10.0' | |
# Setup sphinx | |
- name: Cache pip packages | |
uses: actions/cache@v3 | |
id: cache-venv | |
with: | |
path: ./venv | |
key: misc-venv-${{ hashFiles('rst/requirements.txt') }}-03 | |
- | |
run: | | |
python -m venv ./venv && . ./venv/bin/activate | |
pip install -r rst/requirements.txt | |
if: steps.cache-venv.outputs.cache-hit != 'true' | |
# Setup tarantool | |
- uses: tarantool/setup-tarantool@v2 | |
with: | |
tarantool-version: '1.10' | |
# Setup luacheck and ldoc | |
- name: Cache rocks | |
uses: actions/cache@v3 | |
id: cache-rocks | |
with: | |
path: .rocks/ | |
key: misc-rocks-${{ hashFiles('*.rockspec') }}-02 | |
- | |
run: | | |
tarantoolctl rocks install luacheck | |
tarantoolctl rocks install ldoc --server=https://tarantool.github.io/LDoc/ | |
if: steps.cache-rocks.outputs.cache-hit != 'true' | |
# Setup graphql cli | |
- name: Cache npm | |
uses: actions/cache@v3 | |
id: cache-npm | |
with: | |
path: node_modules | |
key: npm-02 | |
- | |
run: npm install graphql-cli@3.0.14 | |
if: steps.cache-npm.outputs.cache-hit != 'true' | |
# Run tests | |
- run: .rocks/bin/luacheck . | |
- name: Run tarantoolctl rocks make | |
run: | | |
. ./venv/bin/activate | |
tarantoolctl rocks make | |
env: | |
CMAKE_LDOC_FIND_REQUIRED: 'YES' | |
CMAKE_SPHINX_FIND_REQUIRED: 'YES' | |
- run: ./fetch-schema.sh | |
- run: cmake -DJUST_CHECK=YES -P rst/BuildUML.cmake | |
# Cleanup cached paths | |
- run: tarantoolctl rocks remove cartridge | |
run-tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
tarantool: ['1.10', '2.7', '2.8', '2.10', '2.11'] | |
etcd: ['v2.3.8'] | |
metrics: [''] | |
include: | |
- tarantool: '2.11' | |
etcd: 'v3.5.0' | |
metrics: '' | |
- tarantool: '2.10' | |
etcd: 'v2.3.8' | |
metrics: '1.0.0' | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9.8' | |
- uses: actions/checkout@v3 | |
- if: matrix.tarantool != 'latest' | |
uses: tarantool/setup-tarantool@v2 | |
with: | |
tarantool-version: '${{ matrix.tarantool }}' | |
- if: matrix.tarantool == 'latest' | |
run: | | |
curl -L https://tarantool.io/pre-release/2/installer.sh | bash | |
sudo apt-get -y install tarantool | |
# Setup etcd | |
- name: Install etcd | |
uses: ./.github/actions/setup-etcd | |
if: runner.os == 'Linux' | |
with: | |
etcd-version: '${{ matrix.etcd }}' | |
install-prefix: etcd-${{ matrix.etcd }} | |
- run: echo "ETCD_PATH=etcd-${{ matrix.etcd }}/etcd" >> $GITHUB_ENV | |
# Setup luatest | |
- name: Cache rocks | |
uses: actions/cache@v3 | |
id: cache-rocks | |
with: | |
path: .rocks/ | |
key: test-rocks-${{ hashFiles('*.rockspec') }}-03 | |
- | |
run: tarantoolctl rocks install luatest 0.5.7 | |
if: steps.cache-rocks.outputs.cache-hit != 'true' | |
# Setup pytest | |
- name: Cache pytest | |
uses: actions/cache@v3 | |
id: cache-pytest | |
with: | |
path: ./pytest-venv | |
key: test-venv-${{ hashFiles('test/integration/requirements.txt') }}-03 | |
- | |
run: | | |
python -m venv ./pytest-venv && . ./pytest-venv/bin/activate | |
pip install -r test/integration/requirements.txt | |
if: steps.cache-pytest.outputs.cache-hit != 'true' | |
# Setup optional rocks | |
- name: Install metrics | |
if: matrix.metrics != '' | |
run: tarantoolctl rocks install metrics ${{ matrix.metrics }} | |
- run: tarantoolctl rocks make | |
# Stop Mono server. This server starts and listens to 8084 port that is | |
# used for tests. | |
- name: 'Stop Mono server' | |
run: sudo kill -9 $(sudo lsof -t -i tcp:8084) || true | |
- uses: nick-fields/retry@v2 | |
with: | |
max_attempts: 3 | |
retry_on: error | |
timeout_minutes: 30 | |
command: | | |
.rocks/bin/luatest -v | |
- name: Run pytest -v | |
run: | | |
. ./pytest-venv/bin/activate | |
pytest -v | |
# Cleanup cached paths | |
- run: tarantoolctl rocks remove cartridge | |
tests-ee: | |
if: | | |
github.event_name == 'push' | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
sdk-version: [ | |
"gc64-2.11.0-rc1-0-r543", | |
"nogc64-2.11.0-rc1-0-r543", | |
] | |
etcd: ['v2.3.8', 'v3.5.0'] | |
fail-fast: false | |
steps: | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9.8' | |
- uses: actions/checkout@v3 | |
- name: Cache Tarantool SDK | |
id: cache-sdk | |
uses: actions/cache@v3 | |
with: | |
path: tarantool-enterprise | |
key: ${{ matrix.sdk-version }} | |
- name: Download Tarantool SDK | |
if: steps.cache-sdk.outputs.cache-hit != 'true' | |
run: | | |
ARCHIVE_NAME=tarantool-enterprise-sdk-${{ matrix.sdk-version }}.linux.x86_64.tar.gz | |
curl -O -L \ | |
https://tarantool:${{ secrets.CARTRIDGE_SDK_DOWNLOAD_TOKEN }}@download.tarantool.io/enterprise/release/linux/x86_64/2.11/${ARCHIVE_NAME} | |
tar -xzf ${ARCHIVE_NAME} | |
rm -f ${ARCHIVE_NAME} | |
source tarantool-enterprise/env.sh | |
- name: Add SDK to PATH and set TARANTOOL_SDK_PATH variable | |
run: | | |
SDK_PATH="$(realpath tarantool-enterprise)" | |
echo "${SDK_PATH}" >> ${GITHUB_PATH} | |
echo "TARANTOOL_SDK_PATH=${SDK_PATH}" >> ${GITHUB_ENV} | |
# Setup etcd | |
- name: Install etcd | |
uses: ./.github/actions/setup-etcd | |
if: runner.os == 'Linux' | |
with: | |
etcd-version: '${{ matrix.etcd }}' | |
install-prefix: etcd-${{ matrix.etcd }} | |
- run: echo "ETCD_PATH=etcd-${{ matrix.etcd }}/etcd" >> $GITHUB_ENV | |
# Setup luatest | |
- | |
run: tarantoolctl rocks install luatest 0.5.7 | |
# Setup pytest | |
- name: Cache pytest | |
uses: actions/cache@v3 | |
id: cache-pytest | |
with: | |
path: ./pytest-venv | |
key: test-venv-${{ hashFiles('test/integration/requirements.txt') }}-03 | |
- | |
run: | | |
python -m venv ./pytest-venv && . ./pytest-venv/bin/activate | |
pip install -r test/integration/requirements.txt | |
if: steps.cache-pytest.outputs.cache-hit != 'true' | |
- run: tarantoolctl rocks make | |
# Stop Mono server. This server starts and listens to 8084 port that is | |
# used for tests. | |
- name: 'Stop Mono server' | |
run: sudo kill -9 $(sudo lsof -t -i tcp:8084) || true | |
- uses: nick-fields/retry@v2 | |
with: | |
max_attempts: 3 | |
retry_on: error | |
timeout_minutes: 30 | |
command: | | |
.rocks/bin/luatest -v | |
- name: Run pytest -v | |
run: | | |
. ./pytest-venv/bin/activate | |
pytest -v | |
# Cleanup cached paths | |
- run: tarantoolctl rocks remove cartridge |