Skip to content

Commit a431c01

Browse files
committed
Setup CI for opensvm-dioxus
Implemented GitHub Actions workflow for continuous integration and deployment: - Added ci.yml workflow for building, testing, and releasing - Configured builds for web, desktop, and Android platforms - Added Homebrew formula generation for macOS - Updated documentation with CI information - Added supporting files (CODEOWNERS, templates, etc.) Closes #5
1 parent db319d1 commit a431c01

File tree

28 files changed

+3300
-1125
lines changed

28 files changed

+3300
-1125
lines changed

.github/CODEOWNERS

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# These owners will be the default owners for everything in the repo.
2+
# Unless a later match takes precedence, they will be requested for
3+
# review when someone opens a pull request.
4+
* @openSVM/maintainers
5+
6+
# Specific ownership for the opensvm-dioxus directory
7+
/opensvm-dioxus/ @openSVM/rust-team
8+
9+
# Specific ownership for the opensvm-reactnative directory
10+
/opensvm-reactnative/ @openSVM/react-team
11+
12+
# Ownership for GitHub Actions workflows
13+
/.github/workflows/ @openSVM/devops
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
## Description
11+
A clear and concise description of what the bug is.
12+
13+
## Steps to Reproduce
14+
1. Go to '...'
15+
2. Click on '...'
16+
3. Scroll down to '...'
17+
4. See error
18+
19+
## Expected Behavior
20+
A clear and concise description of what you expected to happen.
21+
22+
## Actual Behavior
23+
A clear and concise description of what actually happened.
24+
25+
## Screenshots
26+
If applicable, add screenshots to help explain your problem.
27+
28+
## Environment
29+
- OS: [e.g. Windows 10, macOS 12.0, Ubuntu 22.04]
30+
- Browser (if web): [e.g. Chrome, Safari]
31+
- Version: [e.g. 0.1.0]
32+
- Platform: [e.g. Desktop, Web, Android]
33+
34+
## Additional Context
35+
Add any other context about the problem here.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
## Problem Statement
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
## Proposed Solution
14+
A clear and concise description of what you want to happen.
15+
16+
## Alternative Solutions
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
## Additional Context
20+
Add any other context or screenshots about the feature request here.
21+
22+
## Potential Implementation
23+
If you have ideas about how to implement this feature, please share them here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## Description
2+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
3+
4+
Fixes # (issue)
5+
6+
## Type of Change
7+
Please delete options that are not relevant.
8+
9+
- [ ] Bug fix (non-breaking change which fixes an issue)
10+
- [ ] New feature (non-breaking change which adds functionality)
11+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12+
- [ ] This change requires a documentation update
13+
14+
## How Has This Been Tested?
15+
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.
16+
17+
## Checklist
18+
- [ ] My code follows the style guidelines of this project
19+
- [ ] I have performed a self-review of my own code
20+
- [ ] I have commented my code, particularly in hard-to-understand areas
21+
- [ ] I have made corresponding changes to the documentation
22+
- [ ] My changes generate no new warnings
23+
- [ ] I have added tests that prove my fix is effective or that my feature works
24+
- [ ] New and existing unit tests pass locally with my changes
25+
26+
## Screenshots (if applicable)
27+
Add screenshots to help explain your changes.

.github/workflows/README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# GitHub Actions Workflows
2+
3+
This directory contains GitHub Actions workflow configurations for the OpenSVM-Dioxus project.
4+
5+
## CI Workflow (`ci.yml`)
6+
7+
The CI workflow automates building, testing, and releasing the OpenSVM-Dioxus application.
8+
9+
### Triggers
10+
11+
- **Push to main branch**: Runs build and tests
12+
- **Pull requests to main branch**: Runs build and tests
13+
- **Release publication**: Runs build, tests, and creates release artifacts
14+
15+
### Jobs
16+
17+
1. **build-and-test**: Builds and tests the application on Ubuntu, macOS, and Windows
18+
2. **build-web**: Builds the web (WASM) version of the application
19+
3. **build-desktop**: Builds desktop versions for Linux, macOS (Intel and Apple Silicon), and Windows
20+
4. **build-android**: Builds the Android APK
21+
5. **create-release**: Collects all artifacts and attaches them to the GitHub release
22+
6. **homebrew**: Creates and updates a Homebrew formula for easy installation on macOS
23+
24+
### Usage
25+
26+
#### Regular Development
27+
28+
The CI workflow automatically runs on every push to the main branch and on pull requests to ensure code quality.
29+
30+
#### Creating a Release
31+
32+
To create a new release with binaries:
33+
34+
1. Go to the GitHub repository
35+
2. Click on "Releases" in the sidebar
36+
3. Click "Draft a new release"
37+
4. Create a new tag (e.g., `v0.1.0`)
38+
5. Fill in the release title and description
39+
6. Click "Publish release"
40+
41+
The workflow will automatically build all platform binaries and attach them to the release. It will also update the Homebrew formula for macOS users.
42+
43+
#### Installing via Homebrew
44+
45+
After a release is published, macOS users can install the application using Homebrew:
46+
47+
```bash
48+
# Add the tap (first time only)
49+
brew tap opensvm/opensvm
50+
51+
# Install the application
52+
brew install opensvm-dioxus
53+
```
54+
55+
### Customization
56+
57+
To modify the CI workflow:
58+
59+
1. Edit the `.github/workflows/ci.yml` file
60+
2. Commit and push your changes
61+
3. The updated workflow will be used for subsequent runs

0 commit comments

Comments
 (0)