Skip to content

Commit 9541b52

Browse files
committed
Set up GitHub Actions for CI/CD and multi-platform releases
1 parent db319d1 commit 9541b52

File tree

13 files changed

+3155
-77
lines changed

13 files changed

+3155
-77
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/core-maintainers
5+
6+
# Specific ownership for the Dioxus project
7+
/opensvm-dioxus/ @openSVM/dioxus-maintainers
8+
9+
# Specific ownership for the React Native project
10+
/opensvm-reactnative/ @openSVM/reactnative-maintainers
11+
12+
# Workflow files
13+
/.github/workflows/ @openSVM/devops-team
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Bug report
3+
title: '[Bug]: '
4+
about: Create a report to help us improve
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Environment (please complete the following information):**
27+
- OS: [e.g. Windows, macOS, Linux, Android]
28+
- Browser (if web): [e.g. Chrome, Safari]
29+
- Version: [e.g. 1.0.0]
30+
31+
**Additional context**
32+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
title: '[Feature]: '
4+
about: Suggest an idea for this project
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
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.

.github/ISSUE_TEMPLATE/workflow.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Workflow issue
3+
title: '[Workflow]: '
4+
about: Report an issue with the CI/CD workflow
5+
labels: workflow, ci/cd
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the issue**
11+
A clear and concise description of what the issue is with the CI/CD workflow.
12+
13+
**Workflow run URL**
14+
Provide a link to the failed workflow run if applicable.
15+
16+
**Expected behavior**
17+
A clear and concise description of what you expected to happen.
18+
19+
**Screenshots**
20+
If applicable, add screenshots to help explain your problem.
21+
22+
**Additional context**
23+
Add any other context about the problem here.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Description
2+
3+
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
4+
5+
Fixes # (issue)
6+
7+
## Type of change
8+
9+
Please delete options that are not relevant.
10+
11+
- [ ] Bug fix (non-breaking change which fixes an issue)
12+
- [ ] New feature (non-breaking change which adds functionality)
13+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
14+
- [ ] This change requires a documentation update
15+
16+
## How Has This Been Tested?
17+
18+
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.
19+
20+
- [ ] Test A
21+
- [ ] Test B
22+
23+
## Checklist:
24+
25+
- [ ] My code follows the style guidelines of this project
26+
- [ ] I have performed a self-review of my own code
27+
- [ ] I have commented my code, particularly in hard-to-understand areas
28+
- [ ] I have made corresponding changes to the documentation
29+
- [ ] My changes generate no new warnings
30+
- [ ] I have added tests that prove my fix is effective or that my feature works
31+
- [ ] New and existing unit tests pass locally with my changes
32+
- [ ] Any dependent changes have been merged and published in downstream modules

.github/workflows/README.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# GitHub Actions Workflows
2+
3+
This directory contains GitHub Actions workflow definitions for automating the build, test, and release processes for the OpenSVM-Dioxus project.
4+
5+
## CI/CD Pipeline (`ci.yml`)
6+
7+
This workflow handles the continuous integration and continuous deployment process for the OpenSVM-Dioxus project.
8+
9+
### Triggers
10+
11+
- **Push** to the `main` branch
12+
- **Push** of tags matching the pattern `v*` (e.g., `v1.0.0`)
13+
- **Pull requests** targeting the `main` branch
14+
15+
### Jobs
16+
17+
#### 1. Build & Test
18+
19+
This job builds and tests the application across multiple platforms:
20+
21+
- **Web (WASM)** - Built on Ubuntu
22+
- **Desktop (macOS)** - Built on macOS
23+
- **Desktop (Windows)** - Built on Windows
24+
- **Android** - Built on Ubuntu
25+
26+
Each platform build includes platform-specific optimizations:
27+
28+
- **Web**: WASM optimization with `wasm-opt`
29+
- **Desktop**: Native CPU instructions with `-C target-cpu=native`
30+
- **Android**: APK optimization with `zipalign` and `apksigner`
31+
32+
#### 2. Release
33+
34+
This job is triggered only when a tag matching the pattern `v*` is pushed. It:
35+
36+
- Downloads all build artifacts
37+
- Packages them into platform-specific ZIP files
38+
- Creates a GitHub release with the packaged artifacts
39+
- Generates release notes automatically
40+
41+
#### 3. Homebrew Formula Update
42+
43+
This job is triggered only when a tag matching the pattern `v*` is pushed. It:
44+
45+
- Creates or updates a Homebrew formula for the macOS release
46+
- Calculates the SHA256 hash of the macOS release artifact
47+
- Creates a pull request to update the formula
48+
49+
#### 4. Android Build
50+
51+
This job builds the Android APK and:
52+
53+
- Optimizes the APK with `zipalign`
54+
- Signs the APK with a debug key
55+
- Uploads the APK as an artifact
56+
- Adds the APK to the GitHub release (if triggered by a tag)
57+
58+
## Usage
59+
60+
### Regular Development
61+
62+
The CI pipeline will automatically run on all pull requests to validate changes.
63+
64+
### Creating a Release
65+
66+
To create a new release:
67+
68+
1. Create and push a new tag following semantic versioning:
69+
```bash
70+
git tag v1.0.0
71+
git push origin v1.0.0
72+
```
73+
74+
2. The workflow will automatically:
75+
- Build all platform versions
76+
- Create a GitHub release with all artifacts
77+
- Update the Homebrew formula
78+
79+
### Customizing the Workflow
80+
81+
To modify the workflow:
82+
83+
1. Edit the `.github/workflows/ci.yml` file
84+
2. Commit and push your changes
85+
3. The updated workflow will be used for subsequent runs

0 commit comments

Comments
 (0)