Nightly CI #353
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
on: | |
schedule: | |
- cron: "0 23 * * 1-5" | |
workflow_dispatch: | |
name: Nightly CI | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
permissions: | |
issues: write | |
jobs: | |
sqlness-test: | |
name: Run sqlness test | |
if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Check install.sh | |
run: ./.github/scripts/check-install-script.sh | |
- name: Run sqlness test | |
uses: ./.github/actions/sqlness-test | |
with: | |
data-root: sqlness-test | |
aws-ci-test-bucket: ${{ vars.AWS_CI_TEST_BUCKET }} | |
aws-region: ${{ vars.AWS_CI_TEST_BUCKET_REGION }} | |
aws-access-key-id: ${{ secrets.AWS_CI_TEST_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_CI_TEST_SECRET_ACCESS_KEY }} | |
- name: Upload sqlness logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sqlness-logs-kind | |
path: /tmp/kind/ | |
retention-days: 3 | |
sqlness-windows: | |
name: Sqlness tests on Windows | |
if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} | |
runs-on: windows-2022-8-cores | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-cyborg | |
- 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 | |
- name: Run sqlness | |
run: make sqlness-test | |
env: | |
SQLNESS_OPTS: "--preserve-state" | |
- name: Upload sqlness logs | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sqlness-logs | |
path: C:\Users\RUNNER~1\AppData\Local\Temp\sqlness* | |
retention-days: 3 | |
test-on-windows: | |
name: Run tests on Windows | |
if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} | |
runs-on: windows-2022-8-cores | |
timeout-minutes: 60 | |
steps: | |
- run: git config --global core.autocrlf false | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-cyborg | |
- uses: arduino/setup-protoc@v3 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: KyleMayes/install-llvm-action@v1 | |
with: | |
version: "14.0" | |
- name: Install Rust toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: llvm-tools-preview | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Install Cargo Nextest | |
uses: taiki-e/install-action@nextest | |
- name: Install Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Install PyArrow Package | |
run: pip install pyarrow numpy | |
- name: Install WSL distribution | |
uses: Vampire/setup-wsl@v2 | |
with: | |
distribution: Ubuntu-22.04 | |
- name: Running tests | |
run: cargo nextest run -F pyo3_backend,dashboard | |
env: | |
CARGO_BUILD_RUSTFLAGS: "-C linker=lld-link" | |
RUST_BACKTRACE: 1 | |
CARGO_INCREMENTAL: 0 | |
RUSTUP_WINDOWS_PATH_ADD_BIN: 1 # Workaround for https://github.com/nextest-rs/nextest/issues/1493 | |
GT_S3_BUCKET: ${{ vars.AWS_CI_TEST_BUCKET }} | |
GT_S3_ACCESS_KEY_ID: ${{ secrets.AWS_CI_TEST_ACCESS_KEY_ID }} | |
GT_S3_ACCESS_KEY: ${{ secrets.AWS_CI_TEST_SECRET_ACCESS_KEY }} | |
GT_S3_REGION: ${{ vars.AWS_CI_TEST_BUCKET_REGION }} | |
UNITTEST_LOG_DIR: "__unittest_logs" | |
cleanbuild-linux-nix: | |
runs-on: ubuntu-latest-8-cores | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: cachix/install-nix-action@v27 | |
with: | |
nix_path: nixpkgs=channel:nixos-unstable | |
- run: nix-shell --pure --run "cargo build" | |
check-status: | |
name: Check status | |
needs: [sqlness-test, sqlness-windows, test-on-windows] | |
if: ${{ github.repository == 'GreptimeTeam/greptimedb' }} | |
runs-on: ubuntu-20.04 | |
outputs: | |
check-result: ${{ steps.set-check-result.outputs.check-result }} | |
steps: | |
- name: Set check result | |
id: set-check-result | |
run: | | |
echo "check-result=success" >> $GITHUB_OUTPUT | |
notification: | |
if: ${{ github.repository == 'GreptimeTeam/greptimedb' && always() }} # Not requiring successful dependent jobs, always run. | |
name: Send notification to Greptime team | |
needs: [check-status] | |
runs-on: ubuntu-20.04 | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_DEVELOP_CHANNEL }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-cyborg | |
- name: Report CI status | |
id: report-ci-status | |
working-directory: cyborg | |
run: pnpm tsx bin/report-ci-failure.ts | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CI_REPORT_STATUS: ${{ needs.check-status.outputs.check-result == 'success' }} | |
- name: Notify dev build successful result | |
uses: slackapi/[email protected] | |
if: ${{ needs.check-status.outputs.check-result == 'success' }} | |
with: | |
payload: | | |
{"text": "Nightly CI has completed successfully."} | |
- name: Notify dev build failed result | |
uses: slackapi/[email protected] | |
if: ${{ needs.check-status.outputs.check-result != 'success' }} | |
with: | |
payload: | | |
{"text": "Nightly CI failed has failed, please check ${{ steps.report-ci-status.outputs.html_url }}."} |