box: speed up select/pairs with pagination by reusing ibuf #10
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: coverage | |
on: | |
push: | |
branches: | |
- 'master' | |
- 'release/**' | |
tags: | |
- '**' | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
# Update of a developer branch cancels the previously scheduled workflow | |
# run for this branch. However, the 'master' branch, release branch, and | |
# tag workflow runs are never canceled. | |
# | |
# We use a trick here: define the concurrency group as 'workflow run ID' + | |
# 'workflow run attempt' because it is a unique combination for any run. | |
# So it effectively discards grouping. | |
# | |
# Important: we cannot use `github.sha` as a unique identifier because | |
# pushing a tag may cancel a run that works on a branch push event. | |
group: ${{ ( | |
github.ref == 'refs/heads/master' || | |
startsWith(github.ref, 'refs/heads/release/') || | |
startsWith(github.ref, 'refs/tags/')) && | |
format('{0}-{1}', github.run_id, github.run_attempt) || | |
format('{0}-{1}', github.workflow, github.ref) }} | |
cancel-in-progress: true | |
jobs: | |
coverage: | |
# Run on push to the 'master' and release branches of tarantool/tarantool | |
# or on pull request if the 'notest' label is not set. | |
if: github.repository == 'tarantool/tarantool' && | |
( github.event_name != 'pull_request' || | |
( github.event_name == 'pull_request' && | |
!contains(github.event.pull_request.labels.*.name, 'notest') ) ) | |
runs-on: ubuntu-20.04-self-hosted | |
steps: | |
- name: Prepare checkout | |
uses: tarantool/actions/prepare-checkout@master | |
- name: Sources checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Set environment | |
uses: ./.github/actions/environment | |
- name: Install deps | |
uses: ./.github/actions/install-deps-debian | |
- name: Run testing with coverage enabled | |
run: make -f .test.mk test-coverage | |
- name: Upload coverage results to coveralls.io | |
run: | | |
coveralls-lcov \ | |
--service-name=github \ | |
--repo-token=${{ secrets.GITHUB_TOKEN }} \ | |
--service-job-id=${{ github.run_id }} \ | |
--branch=${{ github.ref }} \ | |
${{ github.event_name == 'pull_request' && | |
format('--service-pull-request={0}', github.event.number) || '' }} \ | |
./coverage.info | |
- name: Send VK Teams message on failure | |
if: failure() | |
uses: ./.github/actions/report-job-status | |
with: | |
bot-token: ${{ secrets.VKTEAMS_BOT_TOKEN }} | |
- name: Collect coverage info | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
retention-days: 21 | |
path: ./coverage.info | |
- name: Collect failure logs | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: failure-logs | |
retention-days: 21 | |
path: ${{ env.VARDIR }}/artifacts | |
- name: Upload logs to S3 | |
uses: ./.github/actions/s3-upload-artifact | |
if: ( success() || failure() ) && ( github.ref == 'refs/heads/master' || | |
startsWith(github.ref, 'refs/heads/release/') || | |
startsWith(github.ref, 'refs/tags/') ) | |
with: | |
job-name: ${{ github.job }} | |
access-key-id: ${{ secrets.MULTIVAC_S3_ACCESS_KEY_ID }} | |
secret-access-key: ${{ secrets.MULTIVAC_S3_SECRET_ACCESS_KEY }} | |
source: ${{ env.VARDIR }}/artifacts |