Skip to content

Sort in tests

Sort in tests #3393

Workflow file for this run

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@v4
- uses: actions/setup-node@v4
with:
node-version: '16.8.0'
- uses: actions/setup-python@v5
with:
python-version: '3.10.0'
# Setup sphinx
- name: Cache pip packages
uses: actions/cache@v4
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@v3
with:
tarantool-version: '1.10'
# Setup luacheck and ldoc
- name: Cache rocks
uses: actions/cache@v4
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@v4
id: cache-npm
with:
path: node_modules
key: npm-02
-
run: npm install [email protected]
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@v5
with:
python-version: '3.9.8'
- uses: actions/checkout@v4
- if: matrix.tarantool != 'latest'
uses: tarantool/setup-tarantool@v3
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
- name: Set up etcd
uses: tarantool/actions/setup-etcd@master
with:
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@v4
id: cache-rocks
with:
path: .rocks/
key: test-rocks-${{ hashFiles('*.rockspec') }}-03
-
run: tarantoolctl rocks install luatest 1.0.1
if: steps.cache-rocks.outputs.cache-hit != 'true'
# Setup pytest
- name: Cache pytest
uses: actions/cache@v4
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@v3
with:
max_attempts: 3
retry_on: error
timeout_minutes: 30
command: |
.rocks/bin/luatest -v --fail-fast
- 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.2-0-r609",
"nogc64-2.11.2-0-r609",
]
etcd: ['v2.3.8', 'v3.5.0']
fail-fast: false
steps:
- uses: actions/setup-python@v5
with:
python-version: '3.9.8'
- uses: actions/checkout@v4
- name: Cache Tarantool SDK
id: cache-sdk
uses: actions/cache@v4
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}
- name: Set up etcd
uses: tarantool/actions/setup-etcd@master
with:
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 1.0.1
# Setup pytest
- name: Cache pytest
uses: actions/cache@v4
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@v3
with:
max_attempts: 3
retry_on: error
timeout_minutes: 30
command: |
.rocks/bin/luatest -v --fail-fast
- name: Run pytest -v
run: |
. ./pytest-venv/bin/activate
pytest -v
# Cleanup cached paths
- run: tarantoolctl rocks remove cartridge