Shared GitHub Actions workflows for LumeWeb projects. This repository provides reusable, centralized workflows that can be called from other repositories to standardize CI/CD processes across the Lume ecosystem.
This repository contains:
- Reusable workflows: GitHub Actions workflows that other repositories can call via
workflow_call - Documentation: Setup guides and templates for implementing workflows
- Templates: Ready-to-use workflow files for quick integration
A centralized workflow for building and testing LumeWeb portal plugins. This workflow provides a standardized build process with support for additional plugin dependencies.
Workflow File: .github/workflows/build-plugin.yml
Documentation: See docs/build-plugin-workflow/
- Standardized build process for all portal plugins
- Automatic module replacement for local development
- Support for additional plugin dependencies (comma-separated)
- Triggers on push and pull requests
┌─────────────────────────────────────────────────────────────┐
│ Plugin Repository │
│ .github/workflows/build.yml │
│ - Triggers on push/PR │
│ - Calls centralized build workflow │
└────────────────────┬────────────────────────────────────────┘
│
│ workflow_call
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Central: LumeWeb/workflows/.github/workflows/ │
│ build-plugin.yml │
│ - Sets up Go 1.22.1 │
│ - Installs XPortal │
│ - Extracts repo name │
│ - Builds plugin with module replacements │
│ - Supports additional dependencies via --with flags │
└─────────────────────────────────────────────────────────────┘
A centralized workflow for creating releases using Knope across LumeWeb repositories. This workflow provides a standardized release process that handles version management, changelog generation, and GitHub release creation.
Workflow File: .github/workflows/release.yml
Documentation: See docs/release-workflow/
- Automated version bumping based on conventional commits
- Automatic changelog generation
- Git tag and GitHub release creation
- Configurable Knope version
- Manual or automated triggers
┌─────────────────────────────────────────────────────────────┐
│ Repository │
│ .github/workflows/release.yml │
│ - Triggers on workflow_dispatch │
│ - Calls centralized release workflow │
└────────────────────┬────────────────────────────────────────┘
│
│ workflow_call
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Central: LumeWeb/workflows/.github/workflows/ │
│ release.yml │
│ - Checks out repository with full history │
│ - Installs Knope │
│ - Sets up Git configuration │
│ - Runs knope release to create release │
└─────────────────────────────────────────────────────────────┘
A centralized workflow for updating Go UI dependencies across multiple portal plugin repositories and apps.
Workflow File: .github/workflows/update-ui.yml
Documentation: See docs/update-ui-workflow/
┌─────────────────────────────────────────────────────────────┐
│ Sender: lume/web/.github/workflows/release-go.yml │
│ - Detects modified Go modules │
│ - Builds matrix of affected repositories │
│ - Dispatches repository_dispatch events │
└────────────────────┬────────────────────────────────────────┘
│
│ repository_dispatch (update-ui)
│
┌────────────┴────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Receiver 1 │ │ Receiver N │
│ portal- │ ... │ portal- │
│ plugin- │ │ plugin-xyz │
│ dashboard │ │ OR app │
│ │ │ │
└──────┬───────┘ └──────┬───────┘
│ │
│ Calls centralized workflow │
▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Central: LumeWeb/workflows/.github/workflows/ │
│ update-ui.yml │
│ - Updates Go dependency via go get │
│ - Runs go mod tidy │
│ - Creates PR to develop branch │
└─────────────────────────────────────────────────────────────┘
-
Copy the build template to your repository:
curl -o .github/workflows/build.yml \ https://raw.githubusercontent.com/LumeWeb/workflows/main/docs/build-plugin-workflow/receiver-template.yml
-
Add dependencies (if your plugin requires them): Uncomment the
with:section in the workflow and add your dependencies.
See the Build Plugin Workflow Documentation for detailed instructions.
-
Copy the release template to your repository:
curl -o .github/workflows/release.yml \ https://raw.githubusercontent.com/LumeWeb/workflows/main/docs/release-workflow/receiver-template.yml
-
Add the required secret:
- Add
PATto your repository secrets (a GitHub Personal Access Token withrepopermissions)
- Add
-
Configure Knope:
- Create a
knope.tomlfile in your repository root with the appropriate configuration
- Create a
See the Release Workflow Documentation for detailed instructions.
-
Copy the receiver template to your repository:
curl -o .github/workflows/update-ui.yml \ https://raw.githubusercontent.com/LumeWeb/workflows/main/docs/update-ui-workflow/receiver-template.yml
-
Add the required secret:
- Add
PATto your repository secrets (a GitHub Personal Access Token withrepopermissions)
- Add
-
Configure permissions (if needed):
permissions: contents: write pull-requests: write
See the Receiver Setup Guide for detailed instructions.
When adding a new workflow to this repository:
- Create the workflow file in
.github/workflows/ - Create a documentation directory in
docs/<workflow-name>/ - Include at minimum:
README.md- Overview and quick start guide- Setup instructions (e.g.,
RECEIVER-SETUP.md,SENDER-SETUP.md) - Template files for easy integration
- Update this README with the new workflow information
- GitHub Actions
- Appropriate secrets configured in receiver repositories
- Workflow permissions (contents: write, pull-requests: write)
- All workflows use
PATsecrets with appropriate permissions - Secrets must be configured in each receiver repository
- Workflows follow least-privilege principles
Contributions are welcome! To add a new workflow:
- Fork the repository
- Create a feature branch
- Add your workflow and documentation
- Submit a pull request
See LICENSE for details.
For issues or questions:
- Check the documentation in the respective workflow directory
- Review GitHub Actions logs
- Open an issue in this repository