Implement ZonedDateTime::offset
and ZonedDateTime::offset_nanoseconds
#570
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
name: Rust - Continuous integration | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
concurrency: | |
# Allow one run at a time for PRs, but multiple for other invocations | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
RUSTFLAGS: -Dwarnings | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy, rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: lint | |
- name: Install cargo-workspaces | |
run: cargo install cargo-workspaces | |
- name: Check rustfmt | |
run: cargo fmt --all -- --check | |
- name: Check clippy | |
run: cargo ws exec cargo clippy --all-features --all-targets | |
- name: Check clippy (No features) | |
run: cargo ws exec cargo clippy --no-default-features --all-targets | |
msrv: | |
name: MSRV | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# Get the rust_version from the Cargo.toml | |
- name: Get rust_version | |
id: rust_version | |
run: echo "rust_version=$(grep '^rust-version' Cargo.toml -m 1 | cut -d' ' -f3 | tr -d '"')" >> $GITHUB_OUTPUT | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ steps.rust_version.outputs.rust_version }} | |
- name: Check compilation | |
run: cargo check --all-features --all-targets | |
build-test: | |
name: Test (${{ matrix.rust.name }}, ${{ matrix.os }}) | |
strategy: | |
matrix: | |
rust: | |
# TODO: possibly add the MSRV here | |
- { version: stable, name: stable } | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust.version }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: build-test | |
- name: Cargo build | |
run: cargo build --quiet | |
- name: Test | |
run: cargo test | |
- name: Cargo build --all-features | |
run: cargo build --quiet --all-features | |
- name: Test --all-features | |
run: cargo test --all-features | |
ffi: | |
name: Test FFI (${{ matrix.rust.name }}, ${{ matrix.os }}) | |
strategy: | |
matrix: | |
rust: | |
- { version: stable, name: stable } | |
os: [ubuntu-latest] # Todo: potentially add more if we add cpp tests | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust.version }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: ffi | |
- name: Cargo build | |
run: cargo build -p temporal_capi | |
- name: Regen | |
run: cargo run -p diplomat-gen | |
# Todo: eventually we should check in bindings and test them | |
- name: Makefile tests | |
run: cd temporal_capi/cpp_tests && make | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
env: | |
RUSTDOCFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: docs | |
- name: Generate documentation | |
run: cargo doc -v --document-private-items --all-features | |