Skip to content

Nightly CI

Nightly CI #5

Workflow file for this run

name: Nightly CI
on:
schedule:
# Every day at 07:33 UTC
#
# Note, this is purposefully run three hours after the packaging
# job. Eventually we might want to kick this off from that job instead.
# The idea being to avoid us hitting the release downloads while they're
# being modified.
- cron: "33 07 * * *"
workflow_dispatch:
jobs:
run:
name: "Rust ${{ matrix.rust }} - ${{ matrix.linkage }} - ${{ matrix.os }}"
strategy:
matrix:
rust:
- "stable"
- "nightly"
linkage:
- "static"
- "dynamic"
os:
- "ubuntu-latest"
# - "linux-arm64-ubuntu24"
- "macos-13"
- "macos-latest"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout tiledb-rs
uses: actions/checkout@v4
- name: Install TileDB
uses: ./.github/actions/install-tiledb
with:
version: "main"
linkage: ${{ matrix.linkage }}
- name: Install Rust ${{ matrix.rust }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: clippy, rustfmt
- name: Check Formatting
run: cargo fmt --quiet --check
- name: Update Dependencies
run: cargo update --recursive
- name: Lint
if: ${{ matrix.rust != 'nightly' }}
run: cargo clippy --all-targets --all-features -- -Dwarnings
- name: Lint
if: ${{ matrix.rust == 'nightly' }}
# The nightly complier/clippy complain about the proptest derive
# macros. Originally I disabled via `--cfg` but now a new lint warns
# on that approach. So I'm just disabling the particular lint globally.
run: cargo clippy --all-targets --all-features -- --allow non_local_definitions -Dwarnings
- name: Build
run: cargo build --all-targets --all-features
- name: Test
run: cargo test --all-targets --all-features
- name: Check Linkage - Linux
if: ${{ startsWith(matrix.os, 'ubuntu-') || startsWith(matrix.os, 'linux-') }}
run: .github/scripts/ubuntu-check-${{ matrix.linkage }}-linkage.sh
- name: Check Linkage - macOS
if: ${{ startsWith(matrix.os, 'macos-') }}
run: .github/scripts/macos-check-${{ matrix.linkage }}-linkage.sh
create_issue_on_fail:
permissions:
issues: write
runs-on: ubuntu-latest
needs: run
if: failure() || cancelled()
steps:
- uses: actions/checkout@v3
- name: Create Issue on Failure
uses: TileDB-Inc/github-actions/open-issue@main
with:
name: Nightly Build Failure
label: nightly-failure
assignee: davisp,rroelke