Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These owners will be the default owners for everything in the repo.
# Unless a later match takes precedence, they will be requested for
# review when someone opens a pull request.
* @openSVM/core-maintainers

# Specific ownership for the Dioxus project
/opensvm-dioxus/ @openSVM/dioxus-maintainers

# Specific ownership for the React Native project
/opensvm-reactnative/ @openSVM/reactnative-maintainers

# Workflow files
/.github/workflows/ @openSVM/devops-team
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
title: '[Bug]: '
about: Create a report to help us improve
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- OS: [e.g. Windows, macOS, Linux, Android]
- Browser (if web): [e.g. Chrome, Safari]
- Version: [e.g. 1.0.0]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
title: '[Feature]: '
about: Suggest an idea for this project
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/workflow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Workflow issue
title: '[Workflow]: '
about: Report an issue with the CI/CD workflow
labels: workflow, ci/cd
assignees: ''

---

**Describe the issue**
A clear and concise description of what the issue is with the CI/CD workflow.

**Workflow run URL**
Provide a link to the failed workflow run if applicable.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Additional context**
Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.

Fixes # (issue)

## Type of change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

- [ ] Test A
- [ ] Test B

## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream modules
99 changes: 99 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# GitHub Actions Workflows

This directory contains GitHub Actions workflow definitions for automating the build, test, and release processes for the OpenSVM-Dioxus project.

## CI/CD Pipeline (`ci.yml`)

This workflow handles the continuous integration and continuous deployment process for the OpenSVM-Dioxus project.

### Triggers

- **Push** to the `main` branch
- **Push** of tags matching the pattern `v*` (e.g., `v1.0.0`)
- **Pull requests** targeting the `main` branch

### Jobs

#### 1. Build & Test

This job builds and tests the application across multiple platforms:

- **Web (WASM)** - Built on Ubuntu
- **Desktop (macOS)** - Built on macOS
- **Desktop (Windows)** - Built on Windows
- **Android** - Built on Ubuntu

Each platform build includes platform-specific optimizations:

- **Web**: WASM optimization with `wasm-opt`
- **Desktop**: Native CPU instructions with `-C target-cpu=native`
- **Android**: APK optimization with `zipalign` and `apksigner`

#### 2. Release

This job is triggered only when a tag matching the pattern `v*` is pushed. It:

- Downloads all build artifacts
- Packages them into platform-specific ZIP files
- Creates a GitHub release with the packaged artifacts
- Generates release notes automatically

#### 3. Homebrew Formula Update

This job is triggered only when a tag matching the pattern `v*` is pushed. It:

- Creates or updates a Homebrew formula for the macOS release
- Calculates the SHA256 hash of the macOS release artifact
- Creates a pull request to update the formula

#### 4. Android Build

This job builds the Android APK and:

- Optimizes the APK with `zipalign`
- Signs the APK with a debug key
- Uploads the APK as an artifact
- Adds the APK to the GitHub release (if triggered by a tag)

## GitHub Actions Used

This workflow uses the following GitHub Actions:

- `actions/checkout@v4`: Checks out the repository
- `actions/setup-java@v4`: Sets up JDK for Android builds
- `actions/cache@v4`: Caches Cargo dependencies for faster builds
- `actions/upload-artifact@v4`: Uploads build artifacts
- `actions/download-artifact@v4`: Downloads artifacts for releases
- `actions-rs/toolchain@v1`: Sets up Rust toolchain
- `actions-rs/cargo@v1`: Runs Cargo commands
- `softprops/action-gh-release@v1`: Creates GitHub releases
- `android-actions/setup-android@v2`: Sets up Android SDK

## Usage

### Regular Development

The CI pipeline will automatically run on all pull requests to validate changes.

### Creating a Release

To create a new release:

1. Create and push a new tag following semantic versioning:
```bash
git tag v1.0.0
git push origin v1.0.0
```

2. The workflow will automatically:
- Build all platform versions
- Create a GitHub release with all artifacts
- Update the Homebrew formula

### Customizing the Workflow

To modify the workflow:

1. Edit the `.github/workflows/ci.yml` file
2. Commit and push your changes
3. The updated workflow will be used for subsequent runs
Loading
Loading