-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(client): move the client to its own subfolder
- Loading branch information
1 parent
8ec1aae
commit 3bafef8
Showing
609 changed files
with
1,406 additions
and
411 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,7 +18,7 @@ jobs: | |
web_test: | ||
name: Web Test | ||
runs-on: ubuntu-20.04 | ||
timeout-minutes: 10 | ||
timeout-minutes: 20 | ||
steps: | ||
- name: Checkout | ||
uses: actions/[email protected] | ||
|
@@ -37,20 +37,20 @@ jobs: | |
run: npm run action lint | ||
|
||
- name: Build Web App | ||
run: npm run action www/build | ||
run: npm run action client/src/www/build | ||
|
||
- name: Test Web App | ||
run: npm run action www/test | ||
run: npm run action client/src/www/test | ||
|
||
- uses: codecov/codecov-action@v3 | ||
with: | ||
files: ./output/coverage/www/coverage-final.json | ||
files: ./client/src/output/coverage/www/coverage-final.json | ||
flags: unittests, www | ||
|
||
linux_debug_build: | ||
name: Linux Debug Build | ||
runs-on: ubuntu-20.04 | ||
timeout-minutes: 10 | ||
timeout-minutes: 20 | ||
needs: web_test | ||
steps: | ||
- name: Checkout | ||
|
@@ -72,12 +72,12 @@ jobs: | |
go-version-file: '${{ github.workspace }}/go.mod' | ||
|
||
- name: Build Linux Client | ||
run: npm run action electron/build linux | ||
run: npm run action client/src/electron/build linux | ||
|
||
windows_debug_build: | ||
name: Windows Debug Build | ||
runs-on: windows-2019 | ||
timeout-minutes: 10 | ||
timeout-minutes: 20 | ||
needs: web_test | ||
steps: | ||
- name: Support longpaths | ||
|
@@ -102,7 +102,7 @@ jobs: | |
go-version-file: '${{ github.workspace }}/go.mod' | ||
|
||
- name: Build Windows Client | ||
run: npm run action electron/build windows | ||
run: npm run action client/src/electron/build windows | ||
|
||
macos_debug_build: | ||
name: MacOS Debug Build | ||
|
@@ -132,18 +132,18 @@ jobs: | |
go-version-file: '${{ github.workspace }}/go.mod' | ||
|
||
- name: Build Tun2Socks (required for Test OutlineAppleLib) | ||
run: npm run action tun2socks/build macos | ||
run: npm run action client/src/tun2socks/build macos | ||
|
||
- name: Test OutlineAppleLib | ||
run: npm run action cordova/test macos | ||
run: npm run action client/src/cordova/test macos | ||
|
||
- name: Build MacOS Client | ||
run: npm run action cordova/build macos | ||
run: npm run action client/src/cordova/build macos | ||
|
||
- uses: codecov/codecov-action@v3 | ||
with: | ||
xcode: true | ||
xcode_archive_path: ./output/coverage/apple/macos/TestResult.xcresult | ||
xcode_archive_path: ./client/src/output/coverage/apple/macos/TestResult.xcresult | ||
flags: unittests, apple, macos | ||
|
||
ios_debug_build: | ||
|
@@ -174,18 +174,18 @@ jobs: | |
go-version-file: '${{ github.workspace }}/go.mod' | ||
|
||
- name: Build Tun2Socks (required for Test OutlineAppleLib) | ||
run: npm run action tun2socks/build ios | ||
run: npm run action client/src/tun2socks/build ios | ||
|
||
- name: Test OutlineAppleLib | ||
run: npm run action cordova/test ios | ||
run: npm run action client/src/cordova/test ios | ||
|
||
- name: Build iOS Client | ||
run: npm run action cordova/build ios | ||
run: npm run action client/src/cordova/build ios | ||
|
||
- uses: codecov/codecov-action@v3 | ||
with: | ||
xcode: true | ||
xcode_archive_path: ./output/coverage/apple/ios/TestResult.xcresult | ||
xcode_archive_path: ./client/src/output/coverage/apple/ios/TestResult.xcresult | ||
flags: unittests, apple, ios | ||
|
||
maccatalyst_debug_build: | ||
|
@@ -216,24 +216,24 @@ jobs: | |
go-version-file: '${{ github.workspace }}/go.mod' | ||
|
||
- name: Build Tun2Socks (required for Test OutlineAppleLib) | ||
run: npm run action tun2socks/build maccatalyst | ||
run: npm run action client/src/tun2socks/build maccatalyst | ||
|
||
- name: Test OutlineAppleLib | ||
run: npm run action cordova/test maccatalyst | ||
run: npm run action client/src/cordova/test maccatalyst | ||
|
||
- name: Build Mac Catalyst Client | ||
run: npm run action cordova/build maccatalyst | ||
run: npm run action client/src/cordova/build maccatalyst | ||
|
||
- uses: codecov/codecov-action@v3 | ||
with: | ||
xcode: true | ||
xcode_archive_path: ./output/coverage/apple/maccatalyst/TestResult.xcresult | ||
xcode_archive_path: ./client/src/output/coverage/apple/maccatalyst/TestResult.xcresult | ||
flags: unittests, apple, maccatalyst | ||
|
||
android_debug_build: | ||
name: Android Debug Build | ||
runs-on: ubuntu-20.04 | ||
timeout-minutes: 10 | ||
timeout-minutes: 20 | ||
needs: web_test | ||
steps: | ||
- name: Checkout | ||
|
@@ -260,7 +260,7 @@ jobs: | |
java-version: 11 | ||
|
||
- name: Setup Android | ||
run: bash ./tools/build/setup_linux_android.sh | ||
run: bash ./client/tools/build/setup_linux_android.sh | ||
|
||
- name: Build Android Client | ||
run: npm run action cordova/build android -- --verbose | ||
run: npm run action client/src/cordova/build android -- --verbose |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,12 @@ | ||
node_modules | ||
.idea | ||
.vs/ | ||
.vscode | ||
*.DS_Store | ||
*.env | ||
*.pdb | ||
*.sw? | ||
/node_modules | ||
/server_manager/node_modules | ||
/server_manager/do_install_script.ts | ||
/server_manager/gcp_install_script.ts | ||
/build | ||
/server_manager/install_scripts/do_install_script.ts | ||
/server_manager/install_scripts/gcp_install_script.ts | ||
/output | ||
/platforms | ||
/plugins | ||
/third_party/Potatso/Pods | ||
/www | ||
coverage | ||
info.txt | ||
keystore.p12 | ||
obj/ | ||
Outline.apk | ||
Outline.apks | ||
packages/ | ||
toc.pb | ||
tools/OutlineService/OutlineService/bin/* | ||
tools/smartdnsblock/bin/* | ||
!tools/OutlineService/OutlineService/bin/*.exe | ||
!tools/smartdnsblock/bin/*.exe | ||
universal.apk | ||
xcuserdata/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
/node_modules | ||
/build | ||
/output | ||
/platforms | ||
/plugins | ||
/third_party/Potatso/Pods | ||
/www | ||
coverage | ||
info.txt | ||
keystore.p12 | ||
obj/ | ||
Outline.apk | ||
Outline.apks | ||
packages/ | ||
toc.pb | ||
tools/smartdnsblock/bin/* | ||
!tools/smartdnsblock/bin/*.exe | ||
universal.apk | ||
xcuserdata/ |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Outline Client | ||
|
||
![Build and Test](https://github.com/Jigsaw-Code/outline-apps/actions/workflows/build_and_test_debug_client.yml/badge.svg?branch=master) | ||
|
||
> **Test coverage currently only tracks the Apple Libraries and core web view code:** | ||
> | ||
> [![codecov](https://codecov.io/gh/Jigsaw-Code/outline-apps/branch/master/graph/badge.svg?token=gasD8v5tjn)](https://codecov.io/gh/Jigsaw-Code/outline-apps) | ||
The Outline Client is a cross-platform VPN or proxy client for Windows, macOS, iOS, Android, and ChromeOS. The Outline Client is designed for use with the [Outline Server](https://github.com/Jigsaw-Code/outline-server) software, but it is fully compatible with any [Shadowsocks](https://shadowsocks.org/) server. | ||
|
||
The client's user interface is implemented in [Polymer](https://www.polymer-project.org/) 2.0. Platform support is provided by [Cordova](https://cordova.apache.org/) and [Electron](https://electronjs.org/), with additional native components in this repository. | ||
|
||
To join our Outline Community, [sign up for the IFF Mattermost](https://internetfreedomfestival.org/wiki/index.php/IFF_Mattermost). | ||
|
||
## Requirements for all builds | ||
|
||
All builds require [Node](https://nodejs.org/) 18 (lts/hydrogen), and [Go](https://golang.org/) 1.20 installed in addition to other per-platform requirements. | ||
|
||
> 💡 NOTE: if you have `nvm` installed, run `nvm use` to switch to the correct node version! | ||
After cloning this repo, install all node dependencies: | ||
|
||
```sh | ||
npm install | ||
``` | ||
|
||
## Building the shared web app | ||
|
||
Outline clients share the same web app across all platforms. This code is located in the src/www directory. If you are making changes to the shared web app and do not need to test platform-specific functionality, you can test in a desktop browser by running: | ||
|
||
```sh | ||
npm run action client/src/www/start | ||
``` | ||
|
||
The latter command will open a browser instance running the app. Browser platform development will use fake servers to test successful and unsuccessful connections. | ||
|
||
The app logic is located in [src/www/app](src/www/app). UI components are located in [src/www/ui_components](src/www/ui_components). If you want to work specifically on an individual UI element, try the storybook!: | ||
|
||
```sh | ||
npm run action client/src/www/storybook | ||
``` | ||
|
||
> 💡 NOTE: every script in this repository can be run with `npm run action` - | ||
> for a CLI-like experience, add something like | ||
> | ||
> ```sh | ||
> alias outline="npm run action" | ||
> ``` | ||
> | ||
> _(you can call it whatever you like)_ | ||
> | ||
> to your shell, then try `outline www/start`! | ||
## Passing configuration flags to actions | ||
Certain actions take configuration flags - but since we're running them through `npm`, you'll have to use the `--` seperator to funnel them through to the underlying process. For example, to set up a MacOS project in release mode, you'd run: | ||
```sh | ||
SENTRY_DSN=<your sentry dsn> npm run action client/src/cordova/setup macos -- --buildMode=release --versionName=<your version name> | ||
``` | ||
## Life of a Packet | ||
[How does the Outline Client work?](docs/life_of_a_packet.md) | ||
## Accepting a server invite | ||
[Looking for instructions on how to accept a server invite?](docs/invitation_instructions.md) | ||
## Platform-specific development | ||
Each platform is handled differently: | ||
1. [Developing for Apple **(MacOS and iOS)**](src/cordova/apple) | ||
2. [Developing for **Android**](src/cordova/android) | ||
3. [Developing for Electron **(Windows and Linux)**](src/electron) | ||
## Error reporting | ||
To enable error reporting through [Sentry](https://sentry.io/) for local builds, run: | ||
```bash | ||
export SENTRY_DSN=[Sentry development API key] | ||
[platform-specific build command] | ||
``` | ||
Release builds on CI are configured with a production Sentry API key. |
File renamed without changes.
Oops, something went wrong.