mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-03 06:46:38 -04:00
99 lines
3.4 KiB
Markdown
99 lines
3.4 KiB
Markdown
# GitHub Actions Workflows
|
|
|
|
This directory contains the GitHub Actions workflows for the MangoWC project.
|
|
|
|
## Workflows
|
|
|
|
### build.yml
|
|
**Purpose**: Builds the project to ensure code changes compile successfully.
|
|
|
|
**Triggers**:
|
|
- 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 (libinput, libdrm, etc.)
|
|
2. Builds wayland 1.23.1 from source
|
|
3. Builds wlroots 0.19 from source
|
|
4. Builds scenefx 0.4.1 from source
|
|
5. Uses `meson subprojects download` to fetch any required subproject dependencies
|
|
6. Configures the project with meson
|
|
7. Builds the project with ninja
|
|
8. Verifies the executables were created
|
|
|
|
**Build Strategy**:
|
|
- All dependencies (wayland, wlroots, scenefx) are built from their source repositories
|
|
- Uses `meson subprojects download` before each meson setup to fetch required subprojects
|
|
- Allows meson wrap mode for automatic subproject handling (no --wrap-mode=nodownload)
|
|
|
|
**Dependencies**:
|
|
- Ubuntu latest runner
|
|
- Meson build system
|
|
- Ninja build tool
|
|
- Wayland 1.23.1 (built from source)
|
|
- wlroots 0.19 (built from source)
|
|
- scenefx 0.4.1 (built from source)
|
|
|
|
### 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.
|
|
|
|
**Triggers**:
|
|
- Scheduled daily at 12:30 UTC
|
|
- Manual dispatch
|
|
|
|
**What it does**:
|
|
- Locks issues, PRs, and discussions that have been closed for 30 days
|
|
- Adds a comment explaining why the thread was locked
|
|
|
|
### stale.yml
|
|
**Purpose**: Automatically closes issues that have been manually marked as stale.
|
|
|
|
**Triggers**:
|
|
- Scheduled daily at 12:30 UTC
|
|
|
|
**What it does**:
|
|
- Closes issues marked with the "stale" label after 7 days of inactivity
|
|
- Adds "automatic-closing" label when closing
|
|
- Does not automatically mark issues as stale (only processes manually marked ones)
|
|
|
|
## 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
|
|
3. Build configuration in meson.build hasn't changed
|