From f1b97a5453647e037ec0f3c26f1a696e8d98ca02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 10:08:44 +0000 Subject: [PATCH] Add path filters to workflows and create docs linting workflow Co-authored-by: squassina <8495707+squassina@users.noreply.github.com> --- .github/workflows/README.md | 33 +++++++++++++++++++++++++++++++-- .github/workflows/build.yml | 20 ++++++++++++++++++++ .github/workflows/docs.yml | 31 +++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/README.md b/.github/workflows/README.md index cbc84b0d..9dac46c5 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -8,10 +8,16 @@ This directory contains the GitHub Actions workflows for the MangoWC project. **Purpose**: Builds the project to ensure code changes compile successfully. **Triggers**: -- Push to `main` or `master` branch -- Pull requests to `main` or `master` branch +- Push to `main` or `master` branch (only when code files change) +- Pull requests to `main` or `master` branch (only when code files change) - Manual dispatch (workflow_dispatch) +**Path filters** (only runs when these change): +- Source files: `**.c`, `**.h`, `**.cpp`, `**.scm` +- Build files: `meson.build`, `meson_options.txt`, `flake.nix` +- Protocol definitions: `protocols/**` +- Workflow file itself: `.github/workflows/build.yml` + **What it does**: 1. Installs system dependencies (wayland, libinput, etc.) 2. Builds wlroots 0.19 from source @@ -28,6 +34,23 @@ This directory contains the GitHub Actions workflows for the MangoWC project. - wlroots 0.19 - scenefx 0.4.1 +### docs.yml +**Purpose**: Validates markdown documentation for style and formatting consistency. + +**Triggers**: +- Push to `main` or `master` branch (only when markdown files change) +- Pull requests to `main` or `master` branch (only when markdown files change) +- Manual dispatch (workflow_dispatch) + +**Path filters** (only runs when these change): +- Markdown files: `**.md` +- Workflow file itself: `.github/workflows/docs.yml` + +**What it does**: +- Lints all markdown files using markdownlint-cli2 +- Checks for common markdown formatting issues +- Ensures documentation follows consistent style guidelines + ### lock.yml **Purpose**: Automatically locks inactive issues and PRs to keep the repository clean. @@ -53,10 +76,16 @@ This directory contains the GitHub Actions workflows for the MangoWC project. ## Development Notes The build workflow ensures that: +- Only runs when actual code or build configuration changes - All dependencies are properly installed - The project compiles without errors - Both main executables (`mango` and `mmsg`) are built successfully +The docs workflow ensures that: +- Only runs when markdown documentation changes +- Documentation follows consistent formatting +- Markdown files are well-formed and free of common issues + If the build workflow fails, check: 1. Dependencies are up to date in the workflow file 2. wlroots and scenefx versions match requirements in meson.build diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e2600232..d8c420c6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,8 +3,28 @@ name: Build on: push: branches: [main, master] + paths: + - '**.c' + - '**.h' + - '**.cpp' + - '**.scm' + - 'meson.build' + - 'meson_options.txt' + - 'flake.nix' + - 'protocols/**' + - '.github/workflows/build.yml' pull_request: branches: [main, master] + paths: + - '**.c' + - '**.h' + - '**.cpp' + - '**.scm' + - 'meson.build' + - 'meson_options.txt' + - 'flake.nix' + - 'protocols/**' + - '.github/workflows/build.yml' workflow_dispatch: jobs: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..fbd8c914 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,31 @@ +name: Documentation + +on: + push: + branches: [main, master] + paths: + - '**.md' + - '.github/workflows/docs.yml' + pull_request: + branches: [main, master] + paths: + - '**.md' + - '.github/workflows/docs.yml' + workflow_dispatch: + +jobs: + markdown-lint: + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Lint markdown files + uses: DavidAnson/markdownlint-cli2-action@v18 + with: + globs: | + **/*.md + !**/node_modules/**