Skip to content

Commit

Permalink
Migrate to the generic Linebender CI script. (#135)
Browse files Browse the repository at this point in the history
  • Loading branch information
xStrom authored Sep 12, 2023
1 parent e269143 commit 3465dde
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 43 deletions.
108 changes: 108 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
env:
# We aim to always test with the latest stable Rust toolchain, however we pin to a specific
# version like 1.70. Note that we only specify MAJOR.MINOR and not PATCH so that bugfixes still
# come automatically. If the version specified here is no longer the latest stable version,
# then please feel free to submit a PR that adjusts it along with the potential clippy fixes.
RUST_STABLE_VER: "1.72" # In quotes because otherwise 1.70 would be interpreted as 1.7

# Rationale
#
# We don't run clippy with --all-targets because then even --lib and --bins are compiled with
# dev dependencies enabled, which does not match how they would be compiled by users.
# A dev dependency might enable a feature of a regular dependency that we need, but testing
# with --all-targets would not catch that. Thus we split --lib & --bins into a separate step.

name: CI

on:
pull_request:
merge_group:

jobs:
rustfmt:
runs-on: ubuntu-latest
name: cargo fmt
steps:
- uses: actions/checkout@v4

- name: install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_STABLE_VER }}
components: rustfmt

- name: cargo fmt
run: cargo fmt --all --check

test-stable:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
name: cargo clippy + test
steps:
- uses: actions/checkout@v4

- name: install additional linux dependencies
run: |
sudo apt update
sudo apt install libwayland-dev libxkbcommon-x11-dev
if: contains(matrix.os, 'ubuntu')

- name: install stable toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_STABLE_VER }}
components: clippy

- name: restore cache
uses: Swatinem/rust-cache@v2

- name: cargo clippy (no default features)
run: cargo clippy --workspace --lib --bins --no-default-features -- -D warnings
# No default features means no backend on Linux, so we won't run it
if: contains(matrix.os, 'ubuntu') == false

- name: cargo clippy (no default features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --no-default-features -- -D warnings
# No default features means no backend on Linux, so we won't run it
if: contains(matrix.os, 'ubuntu') == false

- name: cargo clippy (default features)
run: cargo clippy --workspace --lib --bins -- -D warnings

- name: cargo clippy (default features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples -- -D warnings

- name: cargo clippy (all features)
run: cargo clippy --workspace --lib --bins --all-features -- -D warnings

- name: cargo clippy (all features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings

- name: cargo test
run: cargo test --workspace --all-features

docs:
name: cargo doc
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v4

- name: install additional linux dependencies
run: |
sudo apt update
sudo apt install libwayland-dev libxkbcommon-x11-dev
if: contains(matrix.os, 'ubuntu')

- name: install nightly toolchain
uses: dtolnay/rust-toolchain@nightly

- name: restore cache
uses: Swatinem/rust-cache@v2

- name: cargo doc
run: cargo doc --workspace --all-features --no-deps --document-private-items -Zunstable-options -Zrustdoc-scrape-examples
40 changes: 0 additions & 40 deletions .github/workflows/rust.yml

This file was deleted.

9 changes: 8 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[workspace]
members = [
"crates/xilem_core",
"crates/xilem_svg",
"crates/xilem_html",
"crates/xilem_html/web_examples/counter",
"crates/xilem_html/web_examples/counter_untyped",
"crates/xilem_html/web_examples/todomvc",
"crates/xilem_svg",
]

[workspace.package]
Expand All @@ -31,6 +31,13 @@ edition.workspace = true
homepage.workspace = true
repository.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
default-target = "x86_64-pc-windows-msvc"
# rustdoc-scrape-examples tracking issue https://github.com/rust-lang/rust/issues/88791
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]

[features]
default = ["x11"]

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
[![Xi Zulip](https://img.shields.io/badge/Xi%20Zulip-%23xilem-blue?logo=Zulip)](https://xi.zulipchat.com/#narrow/stream/354396-xilem)
[![dependency status](https://deps.rs/repo/github/linebender/xilem/status.svg)](https://deps.rs/repo/github/linebender/xilem)
[![Apache 2.0](https://img.shields.io/badge/license-Apache-blue.svg)](#license)
[![Build Status](https://github.com/linebender/xilem/actions/workflows/rust.yml/badge.svg)](https://github.com/linebender/xilem/actions)
[![Build Status](https://github.com/linebender/xilem/actions/workflows/ci.yml/badge.svg)](https://github.com/linebender/xilem/actions)
<!-- [![Crates.io](https://img.shields.io/crates/v/xilem.svg)](https://crates.io/crates/xilem) -->
<!-- [![Docs](https://docs.rs/xilem/badge.svg)](https://docs.rs/xilem) -->

Expand Down
7 changes: 7 additions & 0 deletions crates/xilem_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,11 @@ edition.workspace = true
homepage.workspace = true
repository.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
default-target = "x86_64-pc-windows-msvc"
# rustdoc-scrape-examples tracking issue https://github.com/rust-lang/rust/issues/88791
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]

[dependencies]
7 changes: 7 additions & 0 deletions crates/xilem_html/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ edition.workspace = true
homepage.workspace = true
repository.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
default-target = "x86_64-pc-windows-msvc"
# rustdoc-scrape-examples tracking issue https://github.com/rust-lang/rust/issues/88791
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]

[features]
default = ["typed"]
typed = [
Expand Down
7 changes: 7 additions & 0 deletions crates/xilem_svg/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ edition.workspace = true
homepage.workspace = true
repository.workspace = true

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
default-target = "x86_64-pc-windows-msvc"
# rustdoc-scrape-examples tracking issue https://github.com/rust-lang/rust/issues/88791
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"]

[lib]
crate-type = ["cdylib"]

Expand Down
2 changes: 1 addition & 1 deletion src/bloom.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ impl<T: ?Sized + Hash> Bloom<T> {
/// Does not count unique entries; this is just the number of times
/// `add()` was called since the filter was created or last `clear()`ed.
// it feels wrong to call this 'len'?
#[cfg(test)]
#[allow(dead_code)]
pub fn entry_count(&self) -> usize {
self.entry_count
}
Expand Down

0 comments on commit 3465dde

Please sign in to comment.