generate: autoupdate #2147
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: Full CI | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [synchronize, labeled] | |
pull_request_target: | |
types: [labeled] | |
env: | |
GO_VERSION: '>=1.21.2' | |
PYTHON_VERSION: '3.10' | |
jobs: | |
full-ci-ce: | |
if: | | |
(github.event_name == 'push') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
tarantool-version: ["1.10", "2.10", "3.0"] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Prepare CE env | |
uses: ./.github/actions/prepare-ce-test-env | |
with: | |
tarantool-version: '${{ matrix.tarantool-version }}' | |
- name: Static code check | |
uses: ./.github/actions/static-code-check | |
- name: Unit tests | |
run: mage unitfull | |
# This server starts and listen on 8084 port that is used for tests. | |
- name: Stop Mono server | |
run: sudo systemctl kill mono-xsp4 || true | |
- name: Integration tests | |
run: mage integrationfull | |
full-ci-sdk: | |
# Tests will run only when the pull request is labeled with `full-ci`. To | |
# avoid security problems, the label must be reset manually for every run. | |
# | |
# We need to use `pull_request_target` because it has access to base | |
# repository secrets unlike `pull_request`. | |
if: (github.event_name == 'push') || | |
(github.event_name == 'pull_request_target' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
github.event.pull_request.head.repo.full_name == github.repository && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
sdk-version: ["2.10.2-0-gf4228cb7d-r508-linux-x86_64"] | |
fail-fast: false | |
steps: | |
# `ref` as merge request is needed for pull_request_target because this | |
# target runs in the context of the base commit of the pull request. | |
- uses: actions/checkout@master | |
if: github.event_name == 'pull_request_target' | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
ref: refs/pull/${{ github.event.pull_request.number }}/merge | |
- uses: actions/checkout@master | |
if: github.event_name != 'pull_request_target' | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Prepare EE env | |
uses: ./.github/actions/prepare-ee-test-env | |
with: | |
sdk-version: '${{ matrix.sdk-version }}' | |
sdk-download-token: '${{ secrets.SDK_DOWNLOAD_TOKEN }}' | |
- name: Static code check | |
uses: ./.github/actions/static-code-check | |
- name: Unit tests | |
run: mage unitfull | |
# This server starts and listen on 8084 port that is used for tests. | |
- name: Stop Mono server | |
run: sudo systemctl kill mono-xsp4 || true | |
- name: Integration tests | |
run: mage integrationfull | |
full-ci-macOS: | |
if: | | |
(github.event_name == 'push') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: [self-hosted, macOS-13-self-hosted, x86_64, regular] | |
timeout-minutes: 90 | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
brew install --overwrite go mage wget node | |
pip3 install -r test/requirements.txt | |
- name: Install etcd | |
uses: ./.github/actions/setup-etcd | |
- name: Build tt | |
env: | |
TT_CLI_BUILD_SSL: 'static' | |
run: mage build | |
- name: Install tarantool | |
run: | | |
./tt init | |
./tt install tarantool 2.10.7 | |
# Delete the tt config so that it does not affect the test environment. | |
rm -f tt.yaml | |
- name: Add Tarantool to Path | |
run: | | |
echo "${GITHUB_WORKSPACE}/bin" >> $GITHUB_PATH | |
- name: Set Tarantool include directory to the environment | |
run: | | |
echo "TT_CLI_TARANTOOL_PREFIX=${GITHUB_WORKSPACE}/include/" >> $GITHUB_ENV | |
- name: Run unit tests | |
run: mage unitfull | |
- name: Integration tests | |
run: mage integrationfull | |
# ee suffix means that the job runs ee integration tests. | |
full-ci-macOS-ee: | |
if: | | |
(github.event_name == 'push') || | |
(github.event_name == 'pull_request_target' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
github.event.pull_request.head.repo.full_name == github.repository && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Install dependencies | |
run: | | |
brew install --overwrite go mage | |
brew install python3 | |
pip3 install -r test/requirements.txt | |
- name: Build tt | |
env: | |
TT_CLI_BUILD_SSL: 'static' | |
run: mage build | |
- name: Integration tests | |
env: | |
TT_CLI_EE_USERNAME: '${{ secrets.TT_EE_USERNAME }}' | |
TT_CLI_EE_PASSWORD: '${{ secrets.TT_EE_PASSWORD }}' | |
run: mage integrationee | |
# sdk suffix means the tests will be run on tarantool from EE SDK package. | |
# ee suffix means that the job runs EE integration tests. | |
full-ci-sdk-ee: | |
# Tests will run only when the pull request is labeled with `full-ci`. To | |
# avoid security problems, the label must be reset manually for every run. | |
# | |
# We need to use `pull_request_target` because it has access to base | |
# repository secrets unlike `pull_request`. | |
if: (github.event_name == 'push') || | |
(github.event_name == 'pull_request_target' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
github.event.pull_request.head.repo.full_name == github.repository && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
sdk-version: [ "2.10.2-0-gf4228cb7d-r508-linux-x86_64" ] | |
fail-fast: false | |
steps: | |
# `ref` as merge request is needed for pull_request_target because this | |
# target runs in the context of the base commit of the pull request. | |
- uses: actions/checkout@master | |
if: github.event_name == 'pull_request_target' | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
ref: refs/pull/${{ github.event.pull_request.number }}/merge | |
- uses: actions/checkout@master | |
if: github.event_name != 'pull_request_target' | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Prepare EE env | |
uses: ./.github/actions/prepare-ee-test-env | |
with: | |
sdk-version: '${{ matrix.sdk-version }}' | |
sdk-download-token: '${{ secrets.SDK_DOWNLOAD_TOKEN }}' | |
- name: Install dependencies | |
run: | | |
pip3 install -r test/requirements.txt | |
- name: Integration tests | |
env: | |
TT_CLI_EE_USERNAME: '${{ secrets.TT_EE_USERNAME }}' | |
TT_CLI_EE_PASSWORD: '${{ secrets.TT_EE_PASSWORD }}' | |
run: mage integrationee | |
# ce suffix means that the job will be run on CE tarantool. | |
# ee suffix means that the job runs EE integration tests. | |
full-ci-ce-ee: | |
if: | | |
(github.event_name == 'push') || | |
(github.event_name == 'pull_request_target' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
github.event.pull_request.head.repo.full_name == github.repository && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
tarantool-version: ["1.10", "2.10"] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Prepare CE env | |
uses: ./.github/actions/prepare-ce-test-env | |
with: | |
tarantool-version: '${{ matrix.tarantool-version }}' | |
- name: Install dependencies | |
run: | | |
pip3 install -r test/requirements.txt | |
- name: Integration tests | |
env: | |
TT_CLI_EE_USERNAME: '${{ secrets.TT_EE_USERNAME }}' | |
TT_CLI_EE_PASSWORD: '${{ secrets.TT_EE_PASSWORD }}' | |
run: mage integrationee | |
# Integration tests on the system without Tarantool installed. | |
full-ci-ce-no-tarantool: | |
if: | | |
(github.event_name == 'push') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'labeled' && | |
github.event.label.name == 'full-ci') || | |
(github.event_name == 'pull_request' && | |
github.event.action == 'synchronize' && | |
contains(github.event.pull_request.labels.*.name, 'full-ci')) | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@master | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Prepare CE env | |
uses: ./.github/actions/prepare-ce-test-env | |
with: | |
tarantool-version: '2.10.6' | |
skip-tarantool-install: true | |
- name: Install dependencies | |
run: | | |
pip3 install -r test/requirements.txt | |
- name: Integration tests | |
run: mage integrationnotarantool |