Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: use clippy; abort run on failure #1171

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 32 additions & 41 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,45 +1,36 @@
name: build

on:
push:
branches: [master]
pull_request:
branches: [master]

push:
branches: [master]
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always

CARGO_TERM_COLOR: always
RUSTFLAGS: "-Dwarnings"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is needed to fail ci, see the clippy ci docs

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install libgtk-3-dev libgtk-layer-shell-dev libdbusmenu-gtk3-dev

- uses: actions/checkout@v4

- name: Setup rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy,rustfmt

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

- name: Setup problem matchers
uses: r7kamura/rust-problem-matchers@v1

- name: Check formatting
run: cargo fmt -- --check
- name: Check with default features
run: cargo check

- name: Run tests
run: cargo test

- name: Check x11 only
run: cargo check --no-default-features --features=x11
- name: Check wayland only
run: cargo check --no-default-features --features=wayland
- name: Check no-backend
run: cargo check --no-default-features
build:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install libgtk-3-dev libgtk-layer-shell-dev libdbusmenu-gtk3-dev
- uses: actions/checkout@v4
- name: Setup rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy,rustfmt
- name: Load rust cache
uses: Swatinem/rust-cache@v2
- name: Setup problem matchers
uses: r7kamura/rust-problem-matchers@v1
- name: Check formatting
run: cargo fmt -- --check
- name: Run tests
run: cargo test
- name: Check with default features
run: cargo clippy
- name: Check x11 only
run: cargo clippy --no-default-features --features=x11
- name: Check wayland only
run: cargo clippy --no-default-features --features=wayland
- name: Check no-backend
run: cargo clippy --no-default-features
68 changes: 33 additions & 35 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,36 @@
name: Build and deploy Github pages
on:
push:
branches:
- master
paths:
- "docs/**"
- "gen-docs.ts"
- "crates/eww/src/widgets/widget_definitions.rs"
- "crates/eww/src/config/inbuilt.rs"
- ".github/workflows/**"
push:
branches:
- master
paths:
- "docs/**"
- "gen-docs.ts"
- "crates/eww/src/widgets/widget_definitions.rs"
- "crates/eww/src/config/inbuilt.rs"
- ".github/workflows/**"
jobs:
build:
name: Build mdBook
runs-on: ubuntu-latest
steps:
# Checkout
- uses: actions/checkout@master

# Build widget documentation
- name: Use deno to build widget documentation
uses: denoland/setup-deno@main
with:
deno-version: "v1.x"
- run: deno run --allow-read --allow-write gen-docs.ts ./crates/eww/src/widgets/widget_definitions.rs ./crates/eww/src/config/inbuilt.rs

# Build & deploy
- name: build mdBook page
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: '0.4.8'
- run: mdbook build docs

- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/book/
build:
name: Build mdBook
runs-on: ubuntu-latest
if: github.repository == 'elkowar/eww'
steps:
# Checkout
- uses: actions/checkout@master
# Build widget documentation
- name: Use deno to build widget documentation
uses: denoland/setup-deno@main
with:
deno-version: "v1.x"
- run: deno run --allow-read --allow-write gen-docs.ts ./crates/eww/src/widgets/widget_definitions.rs ./crates/eww/src/config/inbuilt.rs
# Build & deploy
- name: build mdBook page
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: '0.4.8'
- run: mdbook build docs
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/book/
7 changes: 6 additions & 1 deletion crates/eww/src/window_initiator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,20 @@ use yuck::config::{
use crate::window_arguments::WindowArguments;

/// This stores all the information required to create a window and is created
/// via combining information from the [`WindowDefinition`] and the [`WindowInitiator`]
/// via combining information from the [`WindowDefinition`] and the [`WindowInitiator`].
#[derive(Debug, Clone)]
pub struct WindowInitiator {
// it would be more efficient to make everything work when not using x11 or wayland instead of simply disabling the warning.
// however, this is probably not worth the effort since i don't think anyonre is seriously building eww without backend support for either x11 or wayland
#[cfg_attr(not(any(feature = "wayland", feature = "x11")), allow(dead_code))]
pub backend_options: BackendWindowOptions,
pub geometry: Option<WindowGeometry>,
pub local_variables: HashMap<VarName, DynVal>,
pub monitor: Option<MonitorIdentifier>,
pub name: String,
#[cfg_attr(not(any(feature = "wayland", feature = "x11")), allow(dead_code))]
pub resizable: bool,
#[cfg_attr(not(any(feature = "wayland", feature = "x11")), allow(dead_code))]
pub stacking: WindowStacking,
}

Expand Down