on: schedule: - cron: "0 15 * * 1-5" merge_group: pull_request: types: [ opened, synchronize, reopened, ready_for_review ] paths-ignore: - 'docs/**' - 'config/**' - '**.md' - '.dockerignore' - 'docker/**' - '.gitignore' - 'grafana/**' - 'Makefile' workflow_dispatch: name: Checks env: TAPLO_VERSION: "0.9.3" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: check-typos-and-docs: if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} name: Check typos and docs runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: crate-ci/typos@master - name: Check the config docs run: | make config-docs && \ git diff --name-only --exit-code ./config/config.md \ || (echo "'config/config.md' is not up-to-date, please run 'make config-docs'." && exit 1) license-header-check: if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} runs-on: ubuntu-latest name: Check License Header steps: - uses: actions/checkout@v4 with: persist-credentials: false - name: Check enterprise license lists run: make check-enterprise-license - uses: korandoru/hawkeye@v5 - name: Check enterprise license header uses: korandoru/hawkeye@v5 with: config: licenserc-enterprise.toml github-script-tests: if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} name: GitHub Script Tests runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions/setup-node@v4 with: node-version: 24 - name: Run Node GitHub script tests run: node --test .github/scripts/query-regression-comment.test.cjs - name: Setup uv uses: astral-sh/setup-uv@v3 with: version: "latest" - name: Run check-version script tests run: uv run --no-project python .github/scripts/check-version-test.py - name: Run enterprise license check tests run: python3 scripts/check-enterprise-license-test.py - name: Run fuzz orchestration script tests run: .github/scripts/run-fuzz-targets-test.sh - name: Run query-regression Python tooling tests run: | python3 tests/perf/test_query_regression_runner_compaction_toctou.py python3 tests/perf/test_query_regression_runner_otlp_trace_load.py python3 tests/perf/test_query_regression_summary_otlp.py python3 tests/perf/test_query_regression_case_selection.py python3 tests/perf/test_query_regression_nightly_refs.py python3 tests/perf/test_aliyun_ecs_runner_scripts.py check: if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} name: Check runs-on: ${{ matrix.os }} strategy: matrix: os: [ ubuntu-latest ] timeout-minutes: 60 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Rust Cache uses: Swatinem/rust-cache@v2 with: # Shares across multiple jobs # Shares with `Clippy` job shared-key: "check-lint" cache-all-crates: "true" save-if: ${{ github.ref == 'refs/heads/main' }} - name: Run cargo check run: cargo check --locked --workspace --all-targets - name: Run cargo check (all features) run: cargo check --locked --workspace --all-targets --all-features toml: if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} name: Toml Check runs-on: ubuntu-latest timeout-minutes: 60 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install taplo uses: taiki-e/install-action@v2 with: tool: taplo@${{ env.TAPLO_VERSION }} fallback: none - name: Run taplo run: taplo format --check