Conversation
- Add `iot-ci` job to `.github/workflows/quakeguard-ci.yml` running on `ubuntu-latest`. - Install PlatformIO Core via Python `pip` in the GitHub Action runner. - Create `esp32_config.env.example` with dummy values for CI testing. - Inject dummy `ENROLLMENT_TOKEN` into the build environment to satisfy the `#error` fail-fast compiler check. - Execute `pio run` to validate firmware compilation cleanly without attempting hardware flashing. - Verify pipeline correctly catches introduced C++ syntax errors. Closes #215, Closes #216, Closes #217, Closes #218, Closes #219, Closes #220, Closes #221
…d secure credentials
- Remove monolithic `quakeguard-ci.yml` to prevent duplicate and noisy pipeline executions.
- Split CI into `backend-ci.yml`, `frontend-ci.yml`, and `iot-ci.yml` with path-based triggers to drastically reduce wasted CI minutes.
- Introduce PlatformIO build validation in `iot-ci.yml` to automatically catch C++ syntax and configuration errors.
- Create `esp32_config.env.example` and inject dummy `ENROLLMENT_TOKEN` to satisfy IoT compile-time `#error` checks.
- Refactor `backend-ci.yml` to replace hardcoded dummy database credentials with GitHub Actions `${{ secrets.* }}`.
- Update `pg_isready` readiness check in the backend pipeline to utilize dynamic secret injection.
Closes #215, Closes #216, Closes #217, Closes #218, Closes #219, Closes #220, Closes #221
Closes #222, Closes #223, Closes #224, Closes #225, Closes #226, Closes #227, Closes #228
# Conflicts: # .github/workflows/quakeguard-ci.yml Co-authored-by: GiZano <136728817+GiZano@users.noreply.github.com>
- Add `.commitlintrc.json` enforcing conventional commit types and scopes. - Inject `wagoid/commitlint-github-action` into backend, frontend, and IoT workflows to validate commit history on push. - Create `pr-lint.yml` using `amannn/action-semantic-pull-request` to require strict semantic PR titles (e.g., `feat(backend): ...`). - Create `devops-ci.yml` triggering strictly on `.github/workflows/**` modifications. - Implement `reviewdog/action-actionlint` to statically analyze YAML syntax, detect undefined secrets, and prevent broken pipelines. Closes #229, Closes #230, Closes #231, Closes #232, Closes #233, Closes #234, Closes #235
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
name: Pull Request
about: Standard PR format for all QuakeGuard contributions
title: "ci(core): add PR title/commit validation and Actionlint workflow"
Overview
This PR introduces vital DevOps hygiene features to prevent malformed commit messages, poorly titled PRs, and broken YAML configurations from entering the
mainbranch. It utilizes standard Conventional Commits for the git history, semantic PR titles for easy changelog generation, and a dedicatedactionlintjob to parse GitHub Actions workflows. Resolves Issue #229.Changes Made
.commitlintrc.json: Created standard configuration allowing types likefeat,fix,secand scopes likebackend,frontend,iot.backend-ci.yml,frontend-ci.yml,iot-ci.yml: Added thewagoid/commitlint-github-actionstep right after code checkout..github/workflows/pr-lint.yml: Added a dedicated job triggering on PR open/edit that enforces titles likefeat(backend): add route..github/workflows/devops-ci.yml: Added an independent CI pipeline triggered on.github/workflows/**changes that usesactionlintto statically verify YAML files.Impact & Next Steps
git logwill immediately become highly readable, machine-parsable, and organized.${{ secrets.MY_TYPO }}),actionlintwill catch it instantly during the PR phase, rather than failing during a production deploy.type(scope): messagegoing forward.Testing Performed
actionlintcorrectly parses all 5 workflow files in the directory without errors.ci(core): test lint) and verified the CI pipeline passes.Semantic PR Checkrejects it.Related Issues
Closes #229
Closes #230
Closes #231
Closes #232
Closes #233
Closes #234
Closes #235