test: support tests with vshard #3541
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: Run tests | |
on: | |
push: | |
pull_request: | |
jobs: | |
run-tests-ce: | |
if: | | |
github.event_name == 'push' || | |
github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
strategy: | |
matrix: | |
# We need 1.10.6 here to check that module works with | |
# old Tarantool versions that don't have "tuple-keydef"/"tuple-merger" support. | |
# We test old metrics with Tarantool 2.10 because since Tarantool 2.11.1 | |
# it uses its own metrics package. | |
# We test old metrics with Cartridge 2.7.9 because since 2.8.0 it | |
# requires metrics 1.0.0. | |
tarantool-version: ["1.10.6", "1.10", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "2.10", "2.11"] | |
metrics-version: [""] | |
cartridge-version: ["2.8.0"] | |
remove-merger: [false] | |
include: | |
- tarantool-version: "1.10" | |
metrics-version: "1.0.0" | |
cartridge-version: "2.8.0" | |
- tarantool-version: "2.7" | |
remove-merger: true | |
cartridge-version: "2.8.0" | |
- tarantool-version: "2.10" | |
metrics-version: "0.10.0" | |
cartridge-version: "2.7.9" | |
- tarantool-version: "2.11" | |
coveralls: true | |
metrics-version: "1.0.0" | |
cartridge-version: "2.8.0" | |
- tarantool-version: "2.11" | |
metrics-version: "1.0.0" | |
vshard-version: "0.1.24" | |
- tarantool-version: "master" | |
metrics-version: "1.0.0" | |
vshard-version: "0.1.24" | |
fail-fast: false | |
# Can't install older versions on 22.04, | |
# see https://github.com/tarantool/setup-tarantool/issues/36 | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@master | |
- name: Setup Tarantool CE | |
if: matrix.tarantool-version != 'master' | |
uses: tarantool/setup-tarantool@v2 | |
with: | |
tarantool-version: ${{ matrix.tarantool-version }} | |
- name: Setup tt | |
run: | | |
curl -L https://tarantool.io/release/2/installer.sh | sudo bash | |
sudo apt install -y tt | |
tt version | |
- name: Get Tarantool master latest commit | |
if: matrix.tarantool-version == 'master' | |
run: | | |
commit_hash=$(git ls-remote https://github.com/tarantool/tarantool.git --branch master | head -c 8) | |
echo "LATEST_COMMIT=${commit_hash}" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache Tarantool master | |
if: matrix.tarantool-version == 'master' | |
id: cache-latest | |
uses: actions/cache@v3 | |
with: | |
path: "${GITHUB_WORKSPACE}/bin" | |
key: cache-latest-${{ env.LATEST_COMMIT }} | |
- name: Setup Tarantool master | |
if: matrix.tarantool-version == 'master' && steps.cache-latest.outputs.cache-hit != 'true' | |
run: | | |
tt init | |
tt install tarantool master | |
- name: Add Tarantool master to PATH | |
if: matrix.tarantool-version == 'master' | |
run: echo "${GITHUB_WORKSPACE}/bin" >> $GITHUB_PATH | |
- name: Fix luarocks in Tarantool CE 1.10.6 | |
if: matrix.tarantool-version == '1.10.6' | |
run: | | |
sudo patch -p1 /usr/share/tarantool/luarocks/manif.lua luarocks.patch | |
- name: Install requirements for community | |
run: | | |
tarantool --version | |
./deps.sh | |
env: | |
CARTRIDGE_VERSION: ${{ matrix.cartridge-version }} | |
VSHARD_VERSION: ${{ matrix.vshard-version }} | |
- name: Install metrics | |
if: matrix.metrics-version != '' | |
run: tt rocks install metrics ${{ matrix.metrics-version }} | |
- name: Remove external merger if needed | |
if: ${{ matrix.remove-merger }} | |
run: rm .rocks/lib/tarantool/tuple/merger.so | |
# This server starts and listen on 8084 port that is used for tests | |
- name: Stop Mono server | |
run: sudo kill -9 $(sudo lsof -t -i tcp:8084) || true | |
- run: cmake -S . -B build | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run tests | |
if: matrix.coveralls != true # See https://github.com/actions/runner/issues/1173 | |
run: make -C build luatest-no-coverage | |
- name: Run tests with coverage and send results to coveralls.io | |
run: make -C build coveralls | |
if: ${{ matrix.coveralls }} | |
run-perf-tests-ce: | |
if: | | |
github.event_name == 'push' || | |
github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository | |
strategy: | |
matrix: | |
tarantool-version: ["1.10", "2.11"] | |
metrics-version: ["1.0.0"] | |
cartridge-version: ["2.8.0"] | |
include: | |
- tarantool-version: "master" | |
metrics-version: "1.0.0" | |
vshard-version: "0.1.24" | |
fail-fast: false | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@master | |
- name: Setup Tarantool CE | |
if: matrix.tarantool-version != 'master' | |
uses: tarantool/setup-tarantool@v2 | |
with: | |
tarantool-version: ${{ matrix.tarantool-version }} | |
- name: Setup tt | |
run: | | |
curl -L https://tarantool.io/release/2/installer.sh | sudo bash | |
sudo apt install -y tt | |
tt version | |
- name: Get Tarantool master latest commit | |
if: matrix.tarantool-version == 'master' | |
run: | | |
commit_hash=$(git ls-remote https://github.com/tarantool/tarantool.git --branch master | head -c 8) | |
echo "LATEST_COMMIT=${commit_hash}" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache Tarantool master | |
if: matrix.tarantool-version == 'master' | |
id: cache-latest | |
uses: actions/cache@v3 | |
with: | |
path: "${GITHUB_WORKSPACE}/bin" | |
key: cache-latest-${{ env.LATEST_COMMIT }} | |
- name: Setup Tarantool master | |
if: matrix.tarantool-version == 'master' && steps.cache-latest.outputs.cache-hit != 'true' | |
run: | | |
tt init | |
tt install tarantool master | |
- name: Add Tarantool master to PATH | |
if: matrix.tarantool-version == 'master' | |
run: echo "${GITHUB_WORKSPACE}/bin" >> $GITHUB_PATH | |
- name: Install requirements for community | |
run: | | |
tarantool --version | |
./deps.sh | |
env: | |
CARTRIDGE_VERSION: ${{ matrix.cartridge-version }} | |
VSHARD_VERSION: ${{ matrix.vshard-version }} | |
- name: Install metrics | |
if: matrix.metrics-version != '' | |
run: tt rocks install metrics ${{ matrix.metrics-version }} | |
# This server starts and listen on 8084 port that is used for tests | |
- name: Stop Mono server | |
run: sudo kill -9 $(sudo lsof -t -i tcp:8084) || true | |
- run: cmake -S . -B build | |
- name: Run performance tests | |
run: make -C build performance | |
run-tests-ee: | |
if: github.event_name == 'push' | |
strategy: | |
matrix: | |
tarantool-version: | |
- folder: "1.10" | |
bundle: "tarantool-enterprise-sdk-1.10.15-0-r563" | |
- folder: "2.11" | |
bundle: "tarantool-enterprise-sdk-nogc64-2.11.0-0-r563.linux.x86_64" | |
metrics-version: ["", "1.0.0"] | |
cartridge-version: ["2.8.0"] | |
fail-fast: false | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@master | |
- name: Install requirements for enterprise | |
run: | | |
curl -O -L https://tarantool:${{ secrets.DOWNLOAD_TOKEN }}@download.tarantool.io/enterprise/release/linux/x86_64/${{ matrix.tarantool-version.folder }}/${{ matrix.tarantool-version.bundle }}.tar.gz | |
tar -xzf ${{ matrix.tarantool-version.bundle }}.tar.gz | |
rm -f ${{ matrix.tarantool-version.bundle }}.tar.gz | |
sudo cp tarantool-enterprise/tarantool /usr/bin/tarantool | |
sudo rm tarantool-enterprise/tt | |
source tarantool-enterprise/env.sh | |
tarantool --version | |
./deps.sh | |
env: | |
CARTRIDGE_VERSION: ${{ matrix.cartridge-version }} | |
VSHARD_VERSION: ${{ matrix.vshard-version }} | |
- name: Install metrics | |
if: matrix.metrics-version != '' | |
run: | | |
source tarantool-enterprise/env.sh | |
tarantoolctl rocks install metrics ${{ matrix.metrics-version }} | |
# This server starts and listen on 8084 port that is used for tests | |
- name: Stop Mono server | |
run: sudo kill -9 $(sudo lsof -t -i tcp:8084) || true | |
- run: cmake -S . -B build | |
- name: Run tests | |
run: make -C build luatest-no-coverage |