https://github.com/openSVM/osvm-cli
Open SVM cli, interact with any SVM with ease
https://github.com/openSVM/osvm-cli
ibrl opensvm solana solana-development svm
Last synced: 3 months ago
JSON representation
Open SVM cli, interact with any SVM with ease
- Host: GitHub
- URL: https://github.com/openSVM/osvm-cli
- Owner: openSVM
- License: mit
- Created: 2025-02-12T06:07:49.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-06-27T06:38:08.000Z (4 months ago)
- Last Synced: 2025-07-28T03:06:48.970Z (3 months ago)
- Topics: ibrl, opensvm, solana, solana-development, svm
- Language: Rust
- Homepage: https://opensvm.github.io/osvm-cli/
- Size: 16.7 MB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: .github/READMEci.md
Awesome Lists containing this project
- awesome-svm - GitHub - cli/) | (Development Tools and Libraries / Development Tools)
README
# GitHub Actions Workflows for OSVM CLI
This directory contains GitHub Actions workflow proposals for the OSVM CLI project. These workflows automate testing, benchmarking, and deployment processes.
## Workflows
### CI (Continuous Integration)
The CI workflow (`workflows/ci.yml`) runs on every push to the main branch and on pull requests. It performs:
1. **Sanity Checks**: Runs `rustfmt` and `clippy` to ensure code quality and style.
2. **Unit Tests**: Runs unit tests for the library and binary components.
3. **End-to-End Tests**: Runs the end-to-end tests that verify CLI functionality.
4. **Code Coverage**: Generates a code coverage report using `cargo-tarpaulin` and uploads it to Codecov.
### Cross-Platform Tests
The Cross-Platform Tests workflow (`workflows/cross-platform.yml`) runs on every push to the main branch and on pull requests. It:
1. Builds and tests the application on multiple operating systems:
- Ubuntu Linux
- macOS
- Windows
2. Ensures the CLI works consistently across different platforms.
### Benchmarks
The Benchmarks workflow (`workflows/benchmarks.yml`) runs on every push to the main branch, on pull requests, and weekly on Sundays. It:
1. Runs performance benchmarks using `cargo-criterion`.
2. Uploads benchmark results as artifacts.
3. Generates a benchmark report.
4. For pull requests, compares benchmarks with the main branch to detect performance regressions.
### Security Scan
The Security Scan workflow (`workflows/security.yml`) runs on every push to the main branch, on pull requests, and weekly on Mondays. It:
1. **Security Audit**: Runs `cargo-audit` to check for known vulnerabilities in dependencies.
2. **Dependency Review**: Reviews dependencies for security issues in pull requests.
3. **Code Scanning**: Uses GitHub's CodeQL to scan for security vulnerabilities in the code.
### Release
The Release workflow (`workflows/release.yml`) runs when a tag starting with 'v' is pushed. It:
1. **Builds** the release binary.
2. **Creates a GitHub Release** with the binary attached.
3. **Deploys to APT Repository**: Creates a Debian package and deploys it to an APT repository.
4. **Deploys to Homebrew**: Creates a Homebrew formula and submits it to Homebrew.
5. **Deploys Documentation**: Generates documentation using `cargo doc` and deploys it to GitHub Pages.
## Usage
To use these workflows:
1. Move the `.github-proposal` directory to `.github` in your repository.
2. Customize the workflows as needed for your specific requirements.
3. For the Release workflow, you'll need to set up:
- An APT repository for Debian package deployment
- A Homebrew tap for formula submission
- GitHub Pages for documentation hosting
## Requirements
These workflows require:
- GitHub Actions enabled on your repository
- Appropriate permissions for the GitHub token
- For the Release workflow, additional secrets may be needed for deployment
## Customization
You can customize these workflows by:
- Adjusting the triggers (e.g., which branches to run on)
- Adding or removing steps
- Changing the deployment targets
- Modifying the build parameters
## Troubleshooting
If you encounter issues with these workflows:
- Check the GitHub Actions logs for detailed error messages
- Ensure all required secrets are properly set
- Verify that the repository has the necessary permissions