Partial Map-Reduce #795
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: fast_testing | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
version-check: | |
# We need this job to run only on push with tag. | |
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check module version | |
uses: tarantool/actions/check-module-version@master | |
with: | |
module-name: 'vshard' | |
linux: | |
# We want to run on external PRs, but not on our own internal | |
# PRs as they'll be run by the push to the branch. | |
# | |
# The main trick is described here: | |
# https://github.com/Dart-Code/Dart-Code/pull/2375 | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
strategy: | |
fail-fast: false | |
matrix: | |
tarantool: | |
- '1.10' | |
- '2.7' | |
- '2.8' | |
- '2.10' | |
- 'release-master' | |
env: | |
TNT_RELEASE_PATH: /home/runner/tnt-release | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Install tarantool ${{ matrix.tarantool }} | |
if: startsWith(matrix.tarantool, 'release') != true | |
uses: tarantool/setup-tarantool@v2 | |
with: | |
tarantool-version: ${{ matrix.tarantool }} | |
- name: Create variables for Tarantool ${{ matrix.tarantool }} | |
if: startsWith(matrix.tarantool, 'release') | |
run: | | |
branch=$(echo ${{ matrix.tarantool }} | cut -d- -f2) | |
commit_hash=$(git ls-remote https://github.com/tarantool/tarantool.git --branch ${branch} | head -c 8) | |
echo "TNT_BRANCH=${branch}" >> $GITHUB_ENV | |
echo "VERSION_POSTFIX=-${commit_hash}" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache tarantool build | |
if: startsWith(matrix.tarantool, 'release') | |
id: cache-tnt-release | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.TNT_RELEASE_PATH}} | |
key: cache-tnt-${{ matrix.tarantool }}${{ env.VERSION_POSTFIX }} | |
- name: Clone tarantool ${{ matrix.tarantool }} | |
if: startsWith(matrix.tarantool, 'release') && steps.cache-tnt-release.outputs.cache-hit != 'true' | |
uses: actions/checkout@v3 | |
with: | |
repository: tarantool/tarantool | |
ref: ${{ env.TNT_BRANCH }} | |
path: tarantool | |
fetch-depth: 0 | |
submodules: true | |
- name: Build tarantool ${{ matrix.tarantool }} | |
if: startsWith(matrix.tarantool, 'release') && steps.cache-tnt-release.outputs.cache-hit != 'true' | |
run: | | |
sudo apt-get -y install build-essential cmake make zlib1g-dev libreadline-dev libncurses5-dev \ | |
libssl-dev libunwind-dev libicu-dev python3 python3-yaml python3-six python3-gevent | |
cd ${GITHUB_WORKSPACE}/tarantool | |
mkdir build && cd build | |
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_DIST=ON | |
make && make DESTDIR=${TNT_RELEASE_PATH} install | |
- name: Install tarantool ${{ matrix.tarantool }} | |
if: startsWith(matrix.tarantool, 'release') | |
# Workaround as actions/cache cannot restore data to /usr/local | |
run: sudo cp -rvP ${TNT_RELEASE_PATH}/usr/local/* /usr/local/ | |
- name: Clone the module | |
uses: actions/checkout@v3 | |
with: | |
# Fetch the entire history for all branches and tags. It is needed for | |
# upgrade testing. | |
fetch-depth: 0 | |
# Enable recursive submodules checkout as test-run git module is used | |
# for running tests. | |
submodules: recursive | |
- name: Install test requirements | |
run: pip3 install --user -r test-run/requirements.txt | |
- run: cmake . | |
- run: make test-force |