Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
a1e2af0
Add completion handler usage when restarting client
doromaraujo Dec 12, 2025
08c206e
Fix UI stuck in connecting state during network type switches
mlsmaycon Dec 13, 2025
a3f6cb4
add build and test workflows and handle missing firebase files
mlsmaycon Dec 13, 2025
a52f02e
update jobs and docs with build script
mlsmaycon Dec 13, 2025
cf6f3a2
fix paths
mlsmaycon Dec 13, 2025
ae948b9
fix PeerCard.swift ref
mlsmaycon Dec 13, 2025
da6bbe9
fix comments
mlsmaycon Dec 14, 2025
f22e1db
remove network extension refs
mlsmaycon Dec 14, 2025
4251fc7
Removed PBXBuildFile references
mlsmaycon Dec 14, 2025
28ddad6
use newer xcode
mlsmaycon Dec 14, 2025
08093a7
handle airplane mode
mlsmaycon Dec 14, 2025
62659ac
remove xcode selection
mlsmaycon Dec 14, 2025
aada818
address comments
mlsmaycon Dec 14, 2025
303ea9d
use macos-14
mlsmaycon Dec 14, 2025
8743371
use a subdirectory
mlsmaycon Dec 14, 2025
4a54da7
use a subdirectory in test
mlsmaycon Dec 14, 2025
a30ea8e
improve reliability when handling auth
mlsmaycon Dec 14, 2025
0a16812
Removed Firebase initialization in networkextension
mlsmaycon Dec 14, 2025
ed7ec21
remove mac designed for ipad support from gui
mlsmaycon Dec 14, 2025
bd521b0
fix readme version
mlsmaycon Dec 14, 2025
4177849
add popoverPresentationController when running on ipad
mlsmaycon Dec 14, 2025
6defc9f
Uses temporary directory instead of Documents
mlsmaycon Dec 14, 2025
bf1225c
Removed the misleading comment about onConnected()
mlsmaycon Dec 14, 2025
0aee71b
Added fallback to Documents directory when App Group is unavailable
mlsmaycon Dec 14, 2025
d69a8cf
Added tests
mlsmaycon Dec 14, 2025
242a463
Added workflow permissions
mlsmaycon Dec 14, 2025
5f83261
handle potential nil in tests
mlsmaycon Dec 14, 2025
b369f73
handle airplane mode freezes
mlsmaycon Dec 14, 2025
1028f7c
fix comment
mlsmaycon Dec 14, 2025
50b0165
update airplane mode handler
mlsmaycon Dec 14, 2025
e935811
build 9
mlsmaycon Dec 14, 2025
a07b82d
remove print and reduce max log app size to 100kb
mlsmaycon Dec 14, 2025
dc70b66
fix comments
mlsmaycon Dec 15, 2025
e24dce4
build 10
mlsmaycon Dec 15, 2025
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
102 changes: 102 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Build

on:
push:
branches: [main]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: Build iOS App
runs-on: macos-14

steps:
- name: Checkout ios-client
uses: actions/checkout@v4
with:
path: ios-client

- name: Checkout netbird
uses: actions/checkout@v4
with:
repository: netbirdio/netbird
path: netbird

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache-dependency-path: netbird/go.sum

- name: Install gomobile
run: go install golang.org/x/mobile/cmd/gomobile@v0.0.0-20251113184115-a159579294ab

- name: Debug - List files before xcframework build
working-directory: ios-client
run: |
echo "=== Before xcframework build ==="
ls -la NetBird/Source/App/Views/ || echo "Views dir missing BEFORE"

- name: Build NetBirdSDK xcframework
working-directory: ios-client
run: ./build-go-lib.sh ../netbird

- name: Debug - List files after xcframework build
working-directory: ios-client
run: |
echo "=== After xcframework build ==="
ls -la NetBird/ || echo "NetBird dir missing"
ls -la NetBird/Source/App/Views/ || echo "Views dir missing AFTER"

- name: Install xcpretty
working-directory: ios-client
run: gem install xcpretty

- name: Debug - List Source files
working-directory: ios-client
run: |
echo "=== Checking NetBird/Source/App structure ==="
ls -la NetBird/Source/App/ || echo "App dir not found"
ls -la NetBird/Source/App/Views/ || echo "Views dir not found"
ls -la NetBird/Source/App/Views/Components/ || echo "Components dir not found"
ls -la NetBird/Source/App/ViewModels/ || echo "ViewModels dir not found"

- name: Resolve Swift packages
working-directory: ios-client
run: |
xcodebuild -resolvePackageDependencies \
-project NetBird.xcodeproj \
-scheme NetBird

- name: Build iOS App
working-directory: ios-client
run: |
set -o pipefail
xcodebuild build \
-project NetBird.xcodeproj \
-scheme NetBird \
-destination 'generic/platform=iOS' \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGN_IDENTITY="" \
| xcpretty --color

- name: Build Network Extension
working-directory: ios-client
run: |
set -o pipefail
xcodebuild build \
-project NetBird.xcodeproj \
-scheme NetbirdNetworkExtension \
-destination 'generic/platform=iOS' \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGN_IDENTITY="" \
| xcpretty --color
64 changes: 64 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Test

on:
push:
branches: [main]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
name: Build and Test
runs-on: macos-14

steps:
- name: Checkout ios-client
uses: actions/checkout@v4
with:
path: ios-client

- name: Checkout netbird
uses: actions/checkout@v4
with:
repository: netbirdio/netbird
path: netbird

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
cache-dependency-path: netbird/go.sum

- name: Install gomobile
run: go install golang.org/x/mobile/cmd/gomobile@v0.0.0-20251113184115-a159579294ab

- name: Build NetBirdSDK xcframework
working-directory: ios-client
run: ./build-go-lib.sh ../netbird

- name: Install xcpretty
working-directory: ios-client
run: gem install xcpretty

- name: Resolve Swift packages
working-directory: ios-client
run: |
xcodebuild -resolvePackageDependencies \
-project NetBird.xcodeproj \
-scheme NetBird

- name: Run Tests
working-directory: ios-client
run: |
set -o pipefail
xcodebuild test \
-project NetBird.xcodeproj \
-scheme NetBird \
-destination 'platform=iOS Simulator,name=iPhone 16' \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO \
| xcpretty --color --test
Loading