name: JepsenWorkflow env: # Force the stdout and stderr streams to be unbuffered PYTHONUNBUFFERED: 1 concurrency: group: jepsen on: # yamllint disable-line rule:truthy schedule: - cron: '0 */6 * * *' workflow_dispatch: jobs: RunConfig: runs-on: [self-hosted, style-checker-aarch64] outputs: data: ${{ steps.runconfig.outputs.CI_DATA }} steps: - name: DebugInfo uses: hmarr/debug-action@f7318c783045ac39ed9bb497e22ce835fdafbfe6 - name: Check out repository code uses: ClickHouse/checkout@v1 with: clear-repository: true # to ensure correct digests fetch-depth: 0 # to get version filter: tree:0 - name: PrepareRunConfig id: runconfig run: | echo "::group::configure CI run" python3 "$GITHUB_WORKSPACE/tests/ci/ci.py" --configure --workflow "$GITHUB_WORKFLOW" --outfile ${{ runner.temp }}/ci_run_data.json echo "::endgroup::" echo "::group::CI run configure results" python3 -m json.tool ${{ runner.temp }}/ci_run_data.json echo "::endgroup::" { echo 'CI_DATA<> "$GITHUB_OUTPUT" KeeperJepsenRelease: needs: [RunConfig] uses: ./.github/workflows/reusable_test.yml with: test_name: ClickHouse Keeper Jepsen runner_type: style-checker-aarch64 data: ${{ needs.RunConfig.outputs.data }} run_command: | python3 jepsen_check.py keeper ServerJepsenRelease: if: false # skip for server needs: [RunConfig] uses: ./.github/workflows/reusable_test.yml with: test_name: ClickHouse Server Jepsen runner_type: style-checker-aarch64 data: ${{ needs.RunConfig.outputs.data }} run_command: | python3 jepsen_check.py server CheckWorkflow: if: ${{ !cancelled() }} needs: [RunConfig, ServerJepsenRelease, KeeperJepsenRelease] runs-on: [self-hosted, style-checker-aarch64] steps: - name: Check out repository code uses: ClickHouse/checkout@v1 - name: Check Workflow results if: ${{ !cancelled() }} run: | export WORKFLOW_RESULT_FILE="/tmp/workflow_results.json" cat > "$WORKFLOW_RESULT_FILE" << 'EOF' ${{ toJson(needs) }} EOF python3 ./tests/ci/ci_buddy.py --check-wf-status