-
Notifications
You must be signed in to change notification settings - Fork 0
GitHub Actions
This repository uses GitHub Actions for automated CI/CD, dependency management, and issue maintenance. All workflows are located in .github/workflows/.
File: .github/workflows/docker-build.yml
Purpose: Builds and publishes production Docker images with semantic versioning
Triggers:
- Push to
mainbranch - Manual tags (e.g.,
v1.5.0) - Manual workflow dispatch
Key Features:
- Multi-platform builds (amd64, arm64)
- Semantic versioning based on commit messages
- Automated GitHub releases
- Docker Hub description sync
- Portainer webhook trigger
Tags Produced:
-
mainbranch:latest+ semantic version (e.g.,v1.2.3) - Manual tags: Specific version (e.g.,
v1.5.0)
File: .github/workflows/docker-build-develop.yml
Purpose: Builds and publishes development Docker images for testing
Triggers:
- Push to
developbranch - Manual workflow dispatch
Key Features:
- Multi-platform builds (amd64, arm64)
- No semantic versioning (always overwrites)
- No GitHub releases
- No Portainer webhook
Tags Produced:
-
developbranch:develop(always overwrites)
Required Secrets (both workflows):
-
DOCKER_USERNAME: Docker Hub username (ryakel) -
DOCKER_TOKEN: Docker Hub access token -
PORTAINER_WEBHOOK_URL: Optional Portainer webhook (main only)
Documentation: DOCKER_BUILD_SETUP.md, BRANCH_STRATEGY.md
File: .github/workflows/update-dependencies.yml
Purpose: Downloads and updates vendored JavaScript libraries
Triggers:
- Schedule: Weekly on Sunday at 2:00 AM UTC
- Manual workflow dispatch
- Push to
main(whendependencies.jsonchanges)
Key Features:
- Reads versions from
dependencies.json - Downloads from CDN URLs
- Creates PR if files changed
- Generates version report
Libraries Managed:
- PapaParse (CSV parsing)
- Chart.js (data visualization)
- html2pdf.js (PDF generation)
Documentation: DEPENDENCY_MANAGEMENT.md
File: .github/workflows/stale.yml
Purpose: Automatically closes stale issues and pull requests
Triggers:
- Schedule: Daily at 1:30 AM UTC
Behavior:
Issues:
- Marked stale after 30 days of inactivity
- Closed after 5 days of being stale
- Warning message: "This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days."
Pull Requests:
- Marked stale after 45 days of inactivity
- Closed after 10 days of being stale
- Warning message: "This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days."
Exempt Labels:
-
awaiting-approval: Issues/PRs waiting for review -
wip: Work in progress items
How to Prevent Closure:
- Add a comment to the issue/PR
- Remove the
stalelabel - Add an exempt label (
awaiting-approvalorwip)
All workflows use minimal required permissions following security best practices:
permissions:
contents: read
packages: write
attestations: write
id-token: writepermissions:
contents: write
pull-requests: writepermissions:
contents: write
issues: write
pull-requests: writeYou can manually trigger workflows from the GitHub Actions tab:
Repository β Actions β Docker Builder β Run workflow
Options:
- Choose branch:
main,development, or any branch - Builds and pushes Docker image immediately
Repository β Actions β Update CDN Dependencies β Run workflow
Result:
- Downloads latest versions from
dependencies.json - Creates PR if files changed
No manual trigger needed - runs automatically daily.
Repository β Actions β Select workflow
Information Available:
- Run status (success/failure)
- Execution time
- Logs for each step
- Artifacts produced
Badge in README shows current status:
- β Green: All workflows passing
- β Red: One or more workflows failing
- βͺ Gray: Workflow in progress
GitHub sends email notifications for:
- Workflow failures
- Security alerts
- Dependabot updates
Docker Builder:
-
actions/checkout@v4- Repository checkout -
docker/login-action@v3- Docker Hub authentication -
docker/setup-qemu-action@v3- Multi-platform emulation -
docker/setup-buildx-action@v3- Docker Buildx setup -
docker/metadata-action@v5- Docker metadata extraction -
docker/build-push-action@v6- Docker build and push -
mathieudutour/github-tag-action@v6.2- Semantic versioning -
ncipollo/release-action@v1.16.0- GitHub release creation -
peter-evans/dockerhub-description@v4- Docker Hub sync -
MyAlbum/purge-cache@v2- Build cache purging
Update Dependencies:
-
actions/checkout@v4- Repository checkout -
peter-evans/create-pull-request@v7- PR creation
Stale Issues:
-
actions/stale@v9- Stale issue management
Problem: Docker Hub authentication failed
Solution:
- Verify
DOCKER_USERNAMEandDOCKER_TOKENsecrets exist - Regenerate Docker Hub token if needed
- Ensure token has
Read, Write, Deletepermissions
Problem: Secret doesn't exist in GitHub
Solution:
- Go to Repository β Settings β Secrets and variables β Actions
- Add missing secret(s)
Problem: update-dependencies.yml runs but no PR created
Possible Causes:
- No version changes detected
- Files already up to date
- Network issue downloading from CDN
Solution:
- Check workflow logs
- Manually verify CDN URLs in
dependencies.json - Test download locally:
curl -I "https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js"
Problem: Issues not being marked stale
Check:
- Workflow enabled? (Repository β Actions β Close inactive issues)
- Issues have exempt labels? (
awaiting-approval,wip) - Recent activity? (Comments reset the stale timer)
# Patch release (v1.2.3 β v1.2.4)
git commit -m "fix: resolve CSV upload bug"
git commit -m "patch: update dependencies"
# Minor release (v1.2.3 β v1.3.0)
git commit -m "minor: add aircraft comparison feature"
git commit -m "feat: implement dark mode"
# Major release (v1.2.3 β v2.0.0)
git commit -m "major: redesign UI"
git commit -m "breaking: remove legacy API"- Review and update action versions quarterly
- Monitor workflow execution times
- Clean up old workflow runs (Settings β Actions β General)
- Use secrets for all sensitive data
- Never commit credentials
- Rotate tokens annually
- Enable secret scanning (Settings β Code security and analysis)
- Free tier: 2,000 minutes/month for public repositories
- Current usage: ~20 minutes/week (80 min/month)
- Well under limit: β
| Workflow | Frequency | Duration | Monthly |
|---|---|---|---|
| Docker Builder | ~2-3 builds/week | ~5-8 min | ~40 min |
| Update Dependencies | Weekly | ~2 min | ~8 min |
| Stale Issues | Daily | ~30 sec | ~15 min |
| Total | ~63 min/month |
- Add test workflow (unit tests, linting)
- Implement security scanning (Trivy, Snyk)
- Add performance benchmarking
- Create release notes automation
- Implement auto-merge for patch updates
- Add branch protection rules
- Require status checks before merge
- Enable auto-merge for Renovate PRs
- Implement deployment environments (staging/prod)
- Docker Build Setup - Detailed Docker build configuration
- Dependency Management - Managing library versions
- Automated Updates - Renovate & Dependabot setup
- Deployment Guide - Portainer deployment with webhooks
Last Updated: 2025-11-27 Active Workflows: 3 Status: All workflows operational Required Setup: Docker Hub secrets (see DOCKER_BUILD_SETUP.md)
π View on GitHub | π³ Docker Hub
π Report Issue | π¬ Discussions
License: MIT License | Copyright (c) 2024-2025 FliteAxis
π Getting Started
π¦ Deployment
π§ Development
π Security
- Security Setup Guide
- Security CI/CD Pipeline
- Code Quality & Linting
- SBOM Management
- Vulnerability Scanning
π Dependencies
π³ Docker
π Reference
π Links