A collection of reusable GitHub composite actions designed to automate Innogando's CI/CD processes. This library centralizes the most commonly used automation tools across the organization, standardizing workflows and simplifying configuration across multiple projects.
- Reusability: Eliminates code duplication in workflows across multiple repositories
- Standardization: Ensures consistent CI/CD practices throughout the organization
- Maintenance: Centralizes automation logic for easier updates
- Efficiency: Reduces setup time for new projects
Runs static analysis and format verification on Flutter projects.
- Tools:
dart format,flutter analyze - Features: Excludes encrypted files from formatting
- Configuration: Customizable Flutter version
Applies linting to Python code using best practices.
- Tools:
isort,black - Target directory:
./src
Builds Flutter APKs for Android and distributes them automatically.
- Features:
- Secret unlocking with git-crypt
- ARM64-optimized builds
- Automatic Telegram delivery with changelog
- Required inputs:
project_name,git_crypt_key,telegram_token,telegram_chat_id
Deploys Flutter web applications to remote servers.
- Features:
- Optimized web builds
- Secure connection via WireGuard
- Automatic deployment with nginx restart
- Infrastructure: Compatible with AWS servers
Automates containerized service deployment.
- Complete process:
- Docker image building
- Secure transfer to remote server
- Deployment with docker-compose
- Automatic service restart
Automatically synchronizes Git branches.
- Typical use: Keep development branches up to date
- Strategy: Merge with automatic conflict resolution
Validates correct build number increments in Flutter.
- Verification: Compares against main branch
- Automation: Prevents manual versioning errors
To use any of these actions in your workflows, reference the repository using the uses syntax:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Lint Flutter Code
uses: Innogando/github-workflows/flutter-linter@main
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy to Production
uses: Innogando/github-workflows/docker-deploy@main
with:
project_name: my-app
ssh_host: ${{ secrets.SSH_HOST }}
# ... other required parametersThe actions implement the following security measures:
- git-crypt: For secure secret management
- WireGuard: For secure VPN connections to servers
- SSH: For file transfers and remote execution
- Environment variables: For secure credential handling
To add new actions or improve existing ones:
- Fork the repository
- Create a new branch for your feature
- Develop your action following the existing structure:
new-action/ └── action.yml - Test thoroughly in a development environment
- Submit a pull request with detailed description
- Use composite actions for maximum reusability
- Document all inputs and outputs
- Include clear descriptions and usage examples
- Follow existing naming conventions
MIT License - See LICENSE file for more details.
To report issues or request new features, use GitHub's issue system or contact Innogando's DevOps team.