Skip to content

Commit 6872d5b

Browse files
feat: add OxiCloud desktop client
0 parents  commit 6872d5b

258 files changed

Lines changed: 25177 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# OxiCloud server URL
2+
OXICLOUD_SERVER_URL=http://localhost:8080

.github/workflows/build.yml

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
name: Build All Platforms
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [main]
7+
8+
concurrency:
9+
group: build-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
env:
13+
FLUTTER_VERSION: "3.38.0"
14+
15+
jobs:
16+
# ───────────────────────── Android ─────────────────────────
17+
build-android:
18+
name: Android (APK + AAB)
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: actions/setup-java@v4
24+
with:
25+
distribution: temurin
26+
java-version: "17"
27+
28+
- uses: subosito/flutter-action@v2
29+
with:
30+
flutter-version: ${{ env.FLUTTER_VERSION }}
31+
channel: stable
32+
cache: true
33+
34+
- run: flutter pub get
35+
36+
- name: Build APK (fat)
37+
run: flutter build apk --release
38+
39+
- name: Build APK (per-ABI)
40+
run: flutter build apk --release --split-per-abi
41+
42+
- name: Build AAB
43+
run: flutter build appbundle --release
44+
45+
- uses: actions/upload-artifact@v4
46+
with:
47+
name: android-apk
48+
path: |
49+
build/app/outputs/flutter-apk/*.apk
50+
retention-days: 14
51+
52+
- uses: actions/upload-artifact@v4
53+
with:
54+
name: android-aab
55+
path: build/app/outputs/bundle/release/*.aab
56+
retention-days: 14
57+
58+
# ───────────────────────── iOS ─────────────────────────────
59+
build-ios:
60+
name: iOS (no-codesign)
61+
runs-on: macos-latest
62+
steps:
63+
- uses: actions/checkout@v4
64+
65+
- uses: subosito/flutter-action@v2
66+
with:
67+
flutter-version: ${{ env.FLUTTER_VERSION }}
68+
channel: stable
69+
cache: true
70+
71+
- run: flutter pub get
72+
73+
- name: Build iOS (no codesign)
74+
run: flutter build ios --release --no-codesign
75+
76+
- name: Create Payload zip
77+
run: |
78+
mkdir -p Payload
79+
cp -R build/ios/iphoneos/Runner.app Payload/
80+
zip -r OxiCloud-ios.zip Payload
81+
82+
- uses: actions/upload-artifact@v4
83+
with:
84+
name: ios-build
85+
path: OxiCloud-ios.zip
86+
retention-days: 14
87+
88+
# ───────────────────────── macOS ───────────────────────────
89+
build-macos:
90+
name: macOS
91+
runs-on: macos-latest
92+
steps:
93+
- uses: actions/checkout@v4
94+
95+
- uses: subosito/flutter-action@v2
96+
with:
97+
flutter-version: ${{ env.FLUTTER_VERSION }}
98+
channel: stable
99+
cache: true
100+
101+
- run: flutter pub get
102+
103+
- name: Build macOS
104+
run: flutter build macos --release
105+
106+
- name: Create DMG-ready zip
107+
run: |
108+
cd build/macos/Build/Products/Release
109+
zip -r "$GITHUB_WORKSPACE/OxiCloud-macos.zip" oxicloud.app
110+
111+
- uses: actions/upload-artifact@v4
112+
with:
113+
name: macos-build
114+
path: OxiCloud-macos.zip
115+
retention-days: 14
116+
117+
# ───────────────────────── Linux ───────────────────────────
118+
build-linux:
119+
name: Linux (x64)
120+
runs-on: ubuntu-latest
121+
steps:
122+
- uses: actions/checkout@v4
123+
124+
- name: Install Linux build deps
125+
run: |
126+
sudo apt-get update -y
127+
sudo apt-get install -y \
128+
clang cmake ninja-build pkg-config \
129+
libgtk-3-dev liblzma-dev libstdc++-12-dev \
130+
libsqlite3-dev
131+
132+
- uses: subosito/flutter-action@v2
133+
with:
134+
flutter-version: ${{ env.FLUTTER_VERSION }}
135+
channel: stable
136+
cache: true
137+
138+
- run: flutter pub get
139+
140+
- name: Build Linux
141+
run: flutter build linux --release
142+
143+
- name: Create tarball
144+
run: |
145+
cd build/linux/x64/release/bundle
146+
tar czf "$GITHUB_WORKSPACE/OxiCloud-linux-x64.tar.gz" .
147+
148+
- uses: actions/upload-artifact@v4
149+
with:
150+
name: linux-build
151+
path: OxiCloud-linux-x64.tar.gz
152+
retention-days: 14
153+
154+
# ───────────────────────── Windows ─────────────────────────
155+
build-windows:
156+
name: Windows (x64)
157+
runs-on: windows-latest
158+
steps:
159+
- uses: actions/checkout@v4
160+
161+
- uses: subosito/flutter-action@v2
162+
with:
163+
flutter-version: ${{ env.FLUTTER_VERSION }}
164+
channel: stable
165+
cache: true
166+
167+
- run: flutter pub get
168+
169+
- name: Build Windows
170+
run: flutter build windows --release
171+
172+
- name: Create zip
173+
shell: pwsh
174+
run: |
175+
Compress-Archive `
176+
-Path "build\windows\x64\runner\Release\*" `
177+
-DestinationPath "OxiCloud-windows-x64.zip"
178+
179+
- uses: actions/upload-artifact@v4
180+
with:
181+
name: windows-build
182+
path: OxiCloud-windows-x64.zip
183+
retention-days: 14

.github/workflows/ci.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main, develop]
8+
9+
concurrency:
10+
group: ci-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
analyze:
15+
name: Analyze & Test
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: subosito/flutter-action@v2
21+
with:
22+
flutter-version: "3.38.0"
23+
channel: stable
24+
cache: true
25+
26+
- name: Install dependencies
27+
run: flutter pub get
28+
29+
- name: Check formatting
30+
run: dart format --set-exit-if-changed lib/ test/
31+
32+
- name: Analyze
33+
run: flutter analyze lib/
34+
35+
- name: Run tests
36+
run: flutter test --coverage
37+
38+
- name: Upload coverage
39+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
40+
uses: actions/upload-artifact@v4
41+
with:
42+
name: coverage
43+
path: coverage/lcov.info

0 commit comments

Comments
 (0)