Task Description
Design and implement GitHub Actions workflows for CI and packaging. Workflows should run shellcheck, shfmt, bats (unit/integration), build artifacts for dev and main branch, attach artifacts to Actions or GitHub Release, optionally sign packages.
Task Type
CI/CD
Affected Component
CI/CD
Priority
Medium (Normal priority)
Motivation
Automated testing and packaging guarantees code quality, avoids regressions, and streamlines releases. Current process is manual and error-prone. Modern CI also makes onboarding and contributions easier. BATS testing automates verification of scripts, packaging. Release workflow allows maintainers to ship artifacts securely to end users.
Implementation Plan
- Add .github/workflows/test.yml: run lint (shellcheck/shfmt), bats unit on PR, push
- Add .github/workflows/build-dev.yml: on dev branch, build artifact, upload as Actions artifact
- Add .github/workflows/release.yml: on tag/main, build, sign, and publish artifact to Release
- Optionally provide SBOM generation phase
- Document workflows in README
Files to Modify
.github/workflows/test.yml
.github/workflows/build-dev.yml
.github/workflows/release.yml
Makefile
README.md
bats tests/
Code Examples
Testing Approach
- All workflows trigger as intended on test/dev/main
- Lint, unit and integration tests pass (bats)
- Artifacts are published and downloadable for dev and production releases
- Manual/exploratory test of released installer against a test system
Acceptance Criteria
Breaking Changes
No breaking changes
Dependencies
- Restructured repo layout (see related issue)
- Requires BATS and linter configs available in repo
Risks and Considerations
- CI credentials and secrets for signing must be secure; risk if leaked or misconfigured
- Possible large runner usage if not optimized
Estimated Effort
No response
Subtasks
- [ ] Test workflow
- [ ] Build workflow
- [ ] Release workflow
- [ ] Docs updates
Documentation Updates Required
- README.md (CI, test, build instructions)
- Inline docs in workflow YAML
- CONTRIBUTING.md
Additional Notes
No response
Pre-submission Checklist
Task Description
Design and implement GitHub Actions workflows for CI and packaging. Workflows should run shellcheck, shfmt, bats (unit/integration), build artifacts for dev and main branch, attach artifacts to Actions or GitHub Release, optionally sign packages.
Task Type
CI/CD
Affected Component
CI/CD
Priority
Medium (Normal priority)
Motivation
Automated testing and packaging guarantees code quality, avoids regressions, and streamlines releases. Current process is manual and error-prone. Modern CI also makes onboarding and contributions easier. BATS testing automates verification of scripts, packaging. Release workflow allows maintainers to ship artifacts securely to end users.
Implementation Plan
Files to Modify
Code Examples
Testing Approach
Acceptance Criteria
Breaking Changes
No breaking changes
Dependencies
Risks and Considerations
Estimated Effort
No response
Subtasks
Documentation Updates Required
Additional Notes
No response
Pre-submission Checklist