123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- name: Ya-Build-and-Test
- on:
- workflow_call:
- inputs:
- build_target:
- type: string
- default: "ydb/"
- description: "limit build and test to specific target"
- build_preset:
- type: string
- runner_label:
- type: string
- default: "linux"
- description: "runner label"
- runner_additional_label:
- type: string
- default: "linux"
- description: "additional runner label, can be empty"
- run_build:
- type: boolean
- default: true
- description: "run build"
- run_tests:
- type: boolean
- default: true
- description: "run tests"
- test_threads:
- type: string
- default: 28
- description: "Test threads count"
- link_threads:
- type: string
- default: 8
- description: "link threads count"
- test_size:
- type: string
- default: "small,medium,large"
- test_type:
- type: string
- default: "unittest,py3test,py2test,pytest"
- folder_prefix:
- type: string
- default: "ya-"
- cache_tests:
- type: boolean
- default: false
- description: "Use cache for tests"
- put_build_results_to_cache:
- type: boolean
- default: true
- commit_sha:
- type: string
- default: ""
- defaults:
- run:
- shell: bash
- jobs:
- main:
- name: Build and test ${{ inputs.build_preset }}
- runs-on: [ self-hosted, "${{ inputs.runner_label }}", "${{ inputs.runner_additional_label || inputs.runner_label }}"]
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- with:
- ref: ${{ inputs.commit_sha }}
- - name: comment-build-start
- if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
- shell: bash
- env:
- BUILD_PRESET: ${{ inputs.build_preset }}
- GITHUB_TOKEN: ${{ github.token }}
- run: |
- jobs_url="https://api.github.com/repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/jobs"
- # tricky: we are searching job with name that contains build_preset
- check_url=$(curl -s $jobs_url | jq --arg n "$BUILD_PRESET" -r '.jobs[] | select(.name | contains($n)) | .html_url')
-
- echo "Pre-commit [check]($check_url) for ${{ inputs.commit_sha }} has started." | .github/scripts/tests/comment-pr.py --rewrite
-
- - name: Prepare s3cmd
- uses: ./.github/actions/s3cmd
- with:
- s3_bucket: ${{ vars.AWS_BUCKET }}
- s3_endpoint: ${{ vars.AWS_ENDPOINT }}
- s3_key_id: ${{ secrets.AWS_KEY_ID }}
- s3_key_secret: ${{ secrets.AWS_KEY_VALUE }}
- folder_prefix: ya-
- build_preset: ${{ inputs.build_preset }}
- - name: Build
- uses: ./.github/actions/build_ya
- if: inputs.run_build
- with:
- build_target: ${{ inputs.build_target }}
- build_preset: ${{ inputs.build_preset }}
- bazel_remote_uri: ${{ vars.REMOTE_CACHE_URL_YA || '' }}
- bazel_remote_username: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_USERNAME || '' }}
- bazel_remote_password: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_PASSWORD || '' }}
- link_threads: ${{ inputs.link_threads }}
- - name: Run tests
- uses: ./.github/actions/test_ya
- if: inputs.run_tests
- with:
- build_target: ${{ inputs.build_target }}
- build_preset: ${{ inputs.build_preset }}
- test_size: ${{ inputs.test_size }}
- test_type: ${{ inputs.test_type }}
- testman_token: ${{ secrets.TESTMO_TOKEN }}
- testman_url: ${{ vars.TESTMO_URL }}
- testman_project_id: ${{ vars.TESTMO_PROJECT_ID }}
- bazel_remote_uri: ${{ vars.REMOTE_CACHE_URL_YA || '' }}
- bazel_remote_username: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_USERNAME || '' }}
- bazel_remote_password: ${{ inputs.put_build_results_to_cache && secrets.REMOTE_CACHE_PASSWORD || '' }}
- link_threads: ${{ inputs.link_threads }}
- test_threads: ${{ inputs.test_threads }}
-
- - name: comment-if-cancel
- if: cancelled() && (github.event_name == 'pull_request' || github.event_name == 'pull_request_target')
- env:
- BUILD_PRESET: ${{ inputs.build_preset }}
- GITHUB_TOKEN: ${{ github.token }}
- run: echo "Check cancelled" | .github/scripts/tests/comment-pr.py --color black
|