Release Builds #3
Workflow file for this run
This file contains hidden or 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
| # generated by praktika | |
| name: Release Builds | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| no_cache: | |
| description: Run without cache | |
| required: false | |
| type: boolean | |
| default: false | |
| env: | |
| PYTHONUNBUFFERED: 1 | |
| DISABLE_CI_CACHE: ${{ github.event.inputs.no_cache || '0' }} | |
| CHECKOUT_REF: "" | |
| DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
| CLICKHOUSE_TEST_STAT_URL: ${{ secrets.CLICKHOUSE_TEST_STAT_URL }} | |
| CLICKHOUSE_TEST_STAT_LOGIN: ${{ secrets.CLICKHOUSE_TEST_STAT_LOGIN }} | |
| CLICKHOUSE_TEST_STAT_PASSWORD: ${{ secrets.CLICKHOUSE_TEST_STAT_PASSWORD }} | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} | |
| CHECKS_DATABASE_HOST: ${{ secrets.CHECKS_DATABASE_HOST }} | |
| AZURE_STORAGE_KEY: ${{ secrets.AZURE_STORAGE_KEY }} | |
| AZURE_ACCOUNT_NAME: ${{ secrets.AZURE_ACCOUNT_NAME }} | |
| AZURE_CONTAINER_NAME: ${{ secrets.AZURE_CONTAINER_NAME }} | |
| AZURE_STORAGE_ACCOUNT_URL: "https://${{ secrets.AZURE_ACCOUNT_NAME }}.blob.core.windows.net/" | |
| ROBOT_TOKEN: ${{ secrets.ROBOT_TOKEN }} | |
| GH_TOKEN: ${{ github.token }} | |
| jobs: | |
| config_workflow: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64] | |
| needs: [] | |
| name: "Config Workflow" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Config Workflow" | |
| - name: Note report location to summary | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number || 0 }} | |
| COMMIT_SHA: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} | |
| run: | | |
| if [ "$PR_NUMBER" -eq 0 ]; then | |
| PREFIX="REFs/$GITHUB_REF_NAME/$COMMIT_SHA" | |
| else | |
| PREFIX="PRs/$PR_NUMBER/$COMMIT_SHA" | |
| fi | |
| REPORT_LINK=https://s3.amazonaws.com/altinity-build-artifacts/$PREFIX/ci_run_report.html | |
| echo "Workflow Run Report: [View Report]($REPORT_LINK)" >> $GITHUB_STEP_SUMMARY | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Config Workflow' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Config Workflow' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| dockers_build_amd: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] | |
| needs: [config_workflow] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VycyBCdWlsZCAoYW1kKQ==') }} | |
| name: "Dockers Build (amd)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Dockers Build (amd)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Dockers Build (amd)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Dockers Build (amd)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| dockers_build_arm: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64] | |
| needs: [config_workflow] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VycyBCdWlsZCAoYXJtKQ==') }} | |
| name: "Dockers Build (arm)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Dockers Build (arm)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Dockers Build (arm)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Dockers Build (arm)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_debug: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF9kZWJ1Zyk=') }} | |
| name: "Build (amd_debug)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_debug)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_debug)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_debug)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_release: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF9yZWxlYXNlKQ==') }} | |
| name: "Build (amd_release)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_release)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_release)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_release)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_asan: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF9hc2FuKQ==') }} | |
| name: "Build (amd_asan)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_asan)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_asan)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_asan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_tsan: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF90c2FuKQ==') }} | |
| name: "Build (amd_tsan)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_tsan)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_tsan)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_tsan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_msan: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF9tc2FuKQ==') }} | |
| name: "Build (amd_msan)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_msan)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_msan)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_msan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_ubsan: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF91YnNhbik=') }} | |
| name: "Build (amd_ubsan)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_ubsan)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_ubsan)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_ubsan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_amd_binary: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFtZF9iaW5hcnkp') }} | |
| name: "Build (amd_binary)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (amd_binary)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (amd_binary)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (amd_binary)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_arm_release: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFybV9yZWxlYXNlKQ==') }} | |
| name: "Build (arm_release)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (arm_release)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (arm_release)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (arm_release)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| build_arm_binary: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-builder] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'QnVpbGQgKGFybV9iaW5hcnkp') }} | |
| name: "Build (arm_binary)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Build (arm_binary)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Build (arm_binary)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Build (arm_binary)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| docker_server_image: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_release, build_arm_release] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VyIHNlcnZlciBpbWFnZQ==') }} | |
| name: "Docker server image" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Docker server image" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Docker server image' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Docker server image' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| docker_keeper_image: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_release, build_arm_release] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VyIGtlZXBlciBpbWFnZQ==') }} | |
| name: "Docker keeper image" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Docker keeper image" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Docker keeper image' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Docker keeper image' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| install_packages_amd_release: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_release] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'SW5zdGFsbCBwYWNrYWdlcyAoYW1kX3JlbGVhc2Up') }} | |
| name: "Install packages (amd_release)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Install packages (amd_release)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Install packages (amd_release)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Install packages (amd_release)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| install_packages_arm_release: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_arm_release] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'SW5zdGFsbCBwYWNrYWdlcyAoYXJtX3JlbGVhc2Up') }} | |
| name: "Install packages (arm_release)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Install packages (arm_release)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Install packages (arm_release)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Install packages (arm_release)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_parallel: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYmluYXJ5LCBvbGQgYW5hbHl6ZXIsIHMzIHN0b3JhZ2UsIERhdGFiYXNlUmVwbGljYXRlZCwgcGFyYWxsZWwp') }} | |
| name: "Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, parallel)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, parallel)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, parallel)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, parallel)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_sequential: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYmluYXJ5LCBvbGQgYW5hbHl6ZXIsIHMzIHN0b3JhZ2UsIERhdGFiYXNlUmVwbGljYXRlZCwgc2VxdWVudGlhbCk=') }} | |
| name: "Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, sequential)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, sequential)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, sequential)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (amd_binary, old analyzer, s3 storage, DatabaseReplicated, sequential)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_amd_binary_parallelreplicas_s3_storage_parallel: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYmluYXJ5LCBQYXJhbGxlbFJlcGxpY2FzLCBzMyBzdG9yYWdlLCBwYXJhbGxlbCk=') }} | |
| name: "Stateless tests (amd_binary, ParallelReplicas, s3 storage, parallel)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (amd_binary, ParallelReplicas, s3 storage, parallel)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (amd_binary, ParallelReplicas, s3 storage, parallel)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (amd_binary, ParallelReplicas, s3 storage, parallel)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_amd_binary_parallelreplicas_s3_storage_sequential: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYmluYXJ5LCBQYXJhbGxlbFJlcGxpY2FzLCBzMyBzdG9yYWdlLCBzZXF1ZW50aWFsKQ==') }} | |
| name: "Stateless tests (amd_binary, ParallelReplicas, s3 storage, sequential)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (amd_binary, ParallelReplicas, s3 storage, sequential)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (amd_binary, ParallelReplicas, s3 storage, sequential)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (amd_binary, ParallelReplicas, s3 storage, sequential)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_arm_binary_parallel: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_arm_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhcm1fYmluYXJ5LCBwYXJhbGxlbCk=') }} | |
| name: "Stateless tests (arm_binary, parallel)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (arm_binary, parallel)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (arm_binary, parallel)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (arm_binary, parallel)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| stateless_tests_arm_binary_sequential: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_arm_binary] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhcm1fYmluYXJ5LCBzZXF1ZW50aWFsKQ==') }} | |
| name: "Stateless tests (arm_binary, sequential)" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Stateless tests (arm_binary, sequential)" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Stateless tests (arm_binary, sequential)' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Stateless tests (arm_binary, sequential)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| finish_workflow: | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64] | |
| needs: [config_workflow, dockers_build_amd, dockers_build_arm, build_amd_debug, build_amd_release, build_amd_asan, build_amd_tsan, build_amd_msan, build_amd_ubsan, build_amd_binary, build_arm_release, build_arm_binary, docker_server_image, docker_keeper_image, install_packages_amd_release, install_packages_arm_release, stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_parallel, stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_sequential, stateless_tests_amd_binary_parallelreplicas_s3_storage_parallel, stateless_tests_amd_binary_parallelreplicas_s3_storage_sequential, stateless_tests_arm_binary_parallel, stateless_tests_arm_binary_sequential] | |
| if: ${{ !cancelled() }} | |
| name: "Finish Workflow" | |
| outputs: | |
| data: ${{ steps.run.outputs.DATA }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.CHECKOUT_REF }} | |
| - name: Setup | |
| uses: ./.github/actions/runner_setup | |
| - name: Docker setup | |
| uses: ./.github/actions/docker_setup | |
| with: | |
| test_name: "Finish Workflow" | |
| - name: Prepare env script | |
| run: | | |
| rm -rf ./ci/tmp ./ci/tmp ./ci/tmp | |
| mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp | |
| cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' | |
| export PYTHONPATH=./ci:.: | |
| cat > ./ci/tmp/workflow_inputs.json << 'EOF' | |
| ${{ toJson(github.event.inputs) }} | |
| EOF | |
| cat > ./ci/tmp/workflow_config_release_builds.json << 'EOF' | |
| ${{ needs.config_workflow.outputs.data }} | |
| EOF | |
| cat > ./ci/tmp/workflow_status.json << 'EOF' | |
| ${{ toJson(needs) }} | |
| EOF | |
| ENV_SETUP_SCRIPT_EOF | |
| - name: Run | |
| id: run | |
| run: | | |
| . ./ci/tmp/praktika_setup_env.sh | |
| set -o pipefail | |
| if command -v ts &> /dev/null; then | |
| python3 -m praktika run 'Finish Workflow' --workflow "Release Builds" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log | |
| else | |
| python3 -m praktika run 'Finish Workflow' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log | |
| fi | |
| ########################################################################################## | |
| ##################################### ALTINITY JOBS ###################################### | |
| ########################################################################################## | |
| GrypeScanServer: | |
| needs: [config_workflow, docker_server_image] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VyIHNlcnZlciBpbWFnZQ==') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| suffix: ['', '-alpine'] | |
| uses: ./.github/workflows/grype_scan.yml | |
| secrets: inherit | |
| with: | |
| docker_image: altinityinfra/clickhouse-server | |
| version: ${{ fromJson(needs.config_workflow.outputs.data).custom_data.version.string }} | |
| tag-suffix: ${{ matrix.suffix }} | |
| GrypeScanKeeper: | |
| needs: [config_workflow, docker_keeper_image] | |
| if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'RG9ja2VyIGtlZXBlciBpbWFnZQ==') }} | |
| uses: ./.github/workflows/grype_scan.yml | |
| secrets: inherit | |
| with: | |
| docker_image: altinityinfra/clickhouse-keeper | |
| version: ${{ fromJson(needs.config_workflow.outputs.data).custom_data.version.string }} | |
| SignRelease: | |
| needs: [config_workflow, build_amd_release] | |
| if: ${{ !failure() && !cancelled() }} | |
| uses: ./.github/workflows/reusable_sign.yml | |
| secrets: inherit | |
| with: | |
| test_name: Sign release | |
| runner_type: altinity-style-checker | |
| data: ${{ needs.config_workflow.outputs.data }} | |
| SignAarch64: | |
| needs: [config_workflow, build_arm_release] | |
| if: ${{ !failure() && !cancelled() }} | |
| uses: ./.github/workflows/reusable_sign.yml | |
| secrets: inherit | |
| with: | |
| test_name: Sign aarch64 | |
| runner_type: altinity-style-checker-aarch64 | |
| data: ${{ needs.config_workflow.outputs.data }} | |
| FinishCIReport: | |
| if: ${{ !cancelled() }} | |
| needs: | |
| - config_workflow | |
| - dockers_build_amd | |
| - dockers_build_arm | |
| - build_amd_debug | |
| - build_amd_release | |
| - build_amd_asan | |
| - build_amd_tsan | |
| - build_amd_msan | |
| - build_amd_ubsan | |
| - build_amd_binary | |
| - build_arm_release | |
| - build_arm_binary | |
| - docker_server_image | |
| - docker_keeper_image | |
| - install_packages_amd_release | |
| - install_packages_arm_release | |
| - stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_parallel | |
| - stateless_tests_amd_binary_old_analyzer_s3_storage_databasereplicated_sequential | |
| - stateless_tests_amd_binary_parallelreplicas_s3_storage_parallel | |
| - stateless_tests_amd_binary_parallelreplicas_s3_storage_sequential | |
| - stateless_tests_arm_binary_parallel | |
| - stateless_tests_arm_binary_sequential | |
| - finish_workflow | |
| - GrypeScanServer | |
| - GrypeScanKeeper | |
| - SignRelease | |
| - SignAarch64 | |
| runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64] | |
| steps: | |
| - name: Check out repository code | |
| uses: Altinity/checkout@19599efdf36c4f3f30eb55d5bb388896faea69f6 | |
| with: | |
| clear-repository: true | |
| - name: Finalize workflow report | |
| if: ${{ !cancelled() }} | |
| uses: ./.github/actions/create_workflow_report | |
| with: | |
| workflow_config: ${{ needs.config_workflow.outputs.data }} | |
| final: true |