Skip to content

ci: install newer vshard for reusable test #3923

ci: install newer vshard for reusable test

ci: install newer vshard for reusable test #3923

Workflow file for this run

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.8", "2.10", "2.11"]
metrics-version: [""]
cartridge-version: ["2.8.0"]
external-tuple-merger-version: [""]
external-tuple-keydef-version: [""]
include:
- tarantool-version: "1.10"
metrics-version: "1.0.0"
cartridge-version: "2.8.0"
- tarantool-version: "2.7"
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.25"
- tarantool-version: "2.11"
external-merger-version: "0.0.5"
external-keydef-version: "0.0.4"
- tarantool-version: "3.0.0"
vshard-version: "0.1.25"
- tarantool-version: "master"
vshard-version: "0.1.26"
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 (1.x, 2.x)
if: ${{ startsWith( matrix.tarantool-version, '1.' ) || startsWith( matrix.tarantool-version, '2.' ) }}
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: Cache Tarantool 3.x
if: ${{ startsWith( matrix.tarantool-version, '3.' ) }}
id: cache-v3
uses: actions/cache@v3
with:
path: "${GITHUB_WORKSPACE}/bin"
key: cache-${{ matrix.tarantool-version }}
- name: Setup Tarantool CE (3.x)
if: ${{ startsWith( matrix.tarantool-version, '3.' ) && steps.cache-latest.outputs.cache-hit != 'true' }}
run: |
tt init
tt install tarantool ${{ matrix.tarantool-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 CE (master)
if: matrix.tarantool-version == 'master' && steps.cache-latest.outputs.cache-hit != 'true'
run: |
tt init
tt install tarantool master
- name: Add tt Tarantool to PATH
if: ${{ startsWith( matrix.tarantool-version, '3.' ) || 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: Install external tuple-merger
if: matrix.external-tuple-merger-version != ''
run: tt rocks install tuple-merger ${{ matrix.external-tuple-merger-version }}
- name: Install external tuple-keydef
if: matrix.external-tuple-keydef-version != ''
run: tt rocks install tuple-keydef ${{ matrix.external-tuple-keydef-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
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: "3.0.0"
vshard-version: "0.1.25"
fail-fast: false
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@master
- name: Setup Tarantool CE (1.x, 2.x)
if: ${{ startsWith( matrix.tarantool-version, '1.' ) || startsWith( matrix.tarantool-version, '2.' ) }}
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: Cache Tarantool 3.x
if: ${{ startsWith( matrix.tarantool-version, '3.' ) }}
id: cache-v3
uses: actions/cache@v3
with:
path: "${GITHUB_WORKSPACE}/bin"
key: cache-${{ matrix.tarantool-version }}
- name: Setup Tarantool CE (3.x)
if: ${{ startsWith( matrix.tarantool-version, '3.' ) && steps.cache-latest.outputs.cache-hit != 'true' }}
run: |
tt init
tt install tarantool ${{ matrix.tarantool-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 CE (master)
if: matrix.tarantool-version == 'master' && steps.cache-latest.outputs.cache-hit != 'true'
run: |
tt init
tt install tarantool master
- name: Add tt Tarantool to PATH
if: ${{ startsWith( matrix.tarantool-version, '3.' ) || 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-r609"
- folder: "2.11"
bundle: "tarantool-enterprise-sdk-nogc64-2.11.2-0-r609.linux.x86_64"
metrics-version: ["", "1.0.0"]
cartridge-version: ["2.8.0"]
include:
- tarantool-version:
folder: "3.0"
bundle: "tarantool-enterprise-sdk-gc64-3.0.0-0-gf58f7d82a-r23.linux.x86_64"
vshard-version: "0.1.25"
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
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
tt init
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 tests
run: make -C build luatest-no-coverage