Sync inav to Gitea
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# GitHub Actions Workflows
|
||||
|
||||
This directory contains automated CI/CD workflows for the INAV project.
|
||||
|
||||
## Active Workflows
|
||||
|
||||
### Build and Test
|
||||
|
||||
#### `ci.yml` - Build Firmware
|
||||
**Triggers:** Pull requests, pushes to maintenance branches
|
||||
**Purpose:** Compiles INAV firmware for all targets to verify builds succeed
|
||||
**Matrix:** 15 parallel build jobs for faster CI
|
||||
|
||||
#### `nightly-build.yml` - Nightly Builds
|
||||
**Triggers:** Scheduled nightly
|
||||
**Purpose:** Creates nightly development builds for testing
|
||||
|
||||
### Documentation
|
||||
|
||||
#### `docs.yml` - Documentation Build
|
||||
**Triggers:** Pull requests affecting documentation
|
||||
**Purpose:** Validates documentation builds correctly
|
||||
|
||||
### Code Quality
|
||||
|
||||
#### `pg-version-check.yml` - Parameter Group Version Check
|
||||
**Triggers:** Pull requests to maintenance-9.x and maintenance-10.x
|
||||
**Purpose:** Detects parameter group struct modifications and verifies version increments
|
||||
**Why:** Prevents settings corruption when struct layout changes without version bump
|
||||
|
||||
**How it works:**
|
||||
1. Scans changed .c/.h files for `PG_REGISTER` entries
|
||||
2. Detects if associated struct typedefs were modified
|
||||
3. Checks if the PG version parameter was incremented
|
||||
4. Posts helpful comment if version not incremented
|
||||
|
||||
**Reference:** See `docs/development/parameter_groups/` for PG system documentation
|
||||
|
||||
**Script:** `.github/scripts/check-pg-versions.sh`
|
||||
|
||||
**When to increment PG versions:**
|
||||
- ✅ Adding/removing fields from struct
|
||||
- ✅ Changing field types or sizes
|
||||
- ✅ Reordering fields
|
||||
- ✅ Adding/removing packing attributes
|
||||
- ❌ Only changing `PG_RESET_TEMPLATE` default values
|
||||
- ❌ Only changing comments
|
||||
|
||||
### Pull Request Helpers
|
||||
|
||||
#### `pr-branch-suggestion.yml` - Branch Targeting Suggestion
|
||||
**Triggers:** PRs targeting master branch
|
||||
**Purpose:** Suggests using maintenance-9.x or maintenance-10.x instead
|
||||
|
||||
#### `non-code-change.yaml` - Non-Code Change Detection
|
||||
**Triggers:** Pull requests
|
||||
**Purpose:** Detects PRs with only documentation/formatting changes
|
||||
|
||||
## Configuration Files
|
||||
|
||||
- `../.github/stale.yml` - Stale issue/PR management
|
||||
- `../.github/no-response.yml` - Auto-close issues without response
|
||||
- `../.github/issue_label_bot.yaml` - Automatic issue labeling
|
||||
|
||||
## Adding New Workflows
|
||||
|
||||
When adding workflows:
|
||||
|
||||
1. **Use descriptive names** - Make purpose clear from filename
|
||||
2. **Document in this README** - Add entry above with purpose and triggers
|
||||
3. **Set appropriate permissions** - Principle of least privilege
|
||||
4. **Test in fork first** - Verify before submitting to main repo
|
||||
5. **Handle errors gracefully** - Don't block CI unnecessarily
|
||||
|
||||
### Common Patterns
|
||||
|
||||
**Checkout with history:**
|
||||
```yaml
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
```
|
||||
|
||||
**Post PR comments:**
|
||||
```yaml
|
||||
- uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.issue.number,
|
||||
body: 'Comment text'
|
||||
});
|
||||
```
|
||||
|
||||
**Run bash scripts:**
|
||||
```yaml
|
||||
- run: bash .github/scripts/script-name.sh
|
||||
env:
|
||||
GITHUB_BASE_REF: ${{ github.base_ref }}
|
||||
```
|
||||
|
||||
## Permissions
|
||||
|
||||
Workflows use GitHub's fine-grained permissions:
|
||||
|
||||
- `contents: read` - Read repository code
|
||||
- `pull-requests: write` - Post/update PR comments
|
||||
- `actions: read` - Read workflow run data
|
||||
|
||||
## Local Testing
|
||||
|
||||
Scripts in `.github/scripts/` can be run locally:
|
||||
|
||||
```bash
|
||||
cd inav
|
||||
export GITHUB_BASE_REF=maintenance-9.x
|
||||
export GITHUB_HEAD_REF=feature-branch
|
||||
bash .github/scripts/check-pg-versions.sh
|
||||
```
|
||||
|
||||
## References
|
||||
|
||||
- [GitHub Actions Documentation](https://docs.github.com/en/actions)
|
||||
- [Workflow Syntax](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions)
|
||||
- [GitHub Script Action](https://github.com/actions/github-script)
|
||||
Reference in New Issue
Block a user