mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
* chore: bump rust toolchain to 2024-08-22 Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix clippy Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * update workflow Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * try 20240606 Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
162 lines
5.3 KiB
YAML
162 lines
5.3 KiB
YAML
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
|
|
|
|
env:
|
|
RUST_TOOLCHAIN: nightly-2024-06-06
|
|
|
|
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: 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: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.RUST_TOOLCHAIN }}
|
|
- 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: dtolnay/rust-toolchain@master
|
|
with:
|
|
toolchain: ${{ env.RUST_TOOLCHAIN }}
|
|
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
|
|
- 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"
|
|
|
|
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/slack-github-action@v1.23.0
|
|
if: ${{ needs.check-status.outputs.check-result == 'success' }}
|
|
with:
|
|
payload: |
|
|
{"text": "Nightly CI has completed successfully."}
|
|
|
|
- name: Notify dev build failed result
|
|
uses: slackapi/slack-github-action@v1.23.0
|
|
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 }}."}
|