mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b849e23536 | ||
|
|
0ab4e2f750 | ||
|
|
2316a45a45 | ||
|
|
0a6c22a9b8 | ||
|
|
8adf064a04 | ||
|
|
7fe00f4247 | ||
|
|
5eae02068d | ||
|
|
5d429cedbb | ||
|
|
3c85322067 | ||
|
|
9fb902bdf6 | ||
|
|
262cb7a4b5 | ||
|
|
104fade420 | ||
|
|
bcf8c30ce0 | ||
|
|
c2413fca4d | ||
|
|
5028aca372 | ||
|
|
311f9c5c2a | ||
|
|
32ca1a09da | ||
|
|
bba1324145 | ||
|
|
ff655292fb | ||
|
|
2558bd1b9b | ||
|
|
95d0944b9f | ||
|
|
68ac884d47 | ||
|
|
e2f3996843 | ||
|
|
57ade250af | ||
|
|
c3e0f262d1 | ||
|
|
b9911d0db7 | ||
|
|
d1b780c7be | ||
|
|
1711cced3e | ||
|
|
63e6693255 | ||
|
|
9b8d191bb1 | ||
|
|
6db2b8c66d | ||
|
|
47a08ccbd4 | ||
|
|
7fc78129f4 | ||
|
|
c4504fd3ff | ||
|
|
e4799ff8c4 | ||
|
|
f680924585 | ||
|
|
b0d222768a | ||
|
|
4303c43db7 | ||
|
|
3b3e6d2bfc | ||
|
|
7061f13b24 | ||
|
|
5175636d36 | ||
|
|
570032484f | ||
|
|
9c37fc1a5f | ||
|
|
105023bd87 | ||
|
|
8a9669f130 | ||
|
|
e5bd230fb0 | ||
|
|
e3d47e588a | ||
|
|
f4a5abeed9 | ||
|
|
a7e38d2b00 | ||
|
|
84ba396ed3 | ||
|
|
6683280a37 | ||
|
|
1edf680464 | ||
|
|
4df090469a | ||
|
|
3c63f58532 | ||
|
|
64c8171e13 | ||
|
|
b6175bd408 | ||
|
|
b44bd19c53 | ||
|
|
536bc59abb | ||
|
|
70d5da1e2a | ||
|
|
90d4d79828 | ||
|
|
ccc9be2d4d | ||
|
|
3341c4a670 | ||
|
|
bcb9df9cdf | ||
|
|
2eef9d22e6 | ||
|
|
5e35346f17 | ||
|
|
bb53ee9567 | ||
|
|
9934a856dd | ||
|
|
24904c5083 | ||
|
|
6ce4663a31 | ||
|
|
fbf74d3baa | ||
|
|
b540181990 | ||
|
|
02a6b15e6b | ||
|
|
b34aa10bf8 | ||
|
|
e0ddbc2f28 | ||
|
|
ed2024285d | ||
|
|
ae2120eb96 | ||
|
|
3ceb2257e5 | ||
|
|
624efde7e4 | ||
|
|
50009fef6f | ||
|
|
dde937e197 | ||
|
|
07a480b37a | ||
|
|
9f5bccec30 | ||
|
|
ade52bf81e | ||
|
|
71c766a3b2 | ||
|
|
eef66aee9a | ||
|
|
e245eb1eb5 | ||
|
|
e08fc81397 | ||
|
|
9f9032ae36 | ||
|
|
063a16fcd6 | ||
|
|
0db4151492 | ||
|
|
e44d7a553f | ||
|
|
53a2de98de | ||
|
|
2deaaeef28 | ||
|
|
1f9e16f63e | ||
|
|
87fe69c27c | ||
|
|
2d1eeda188 | ||
|
|
5c06d40358 | ||
|
|
31e193756d | ||
|
|
5aa744db84 | ||
|
|
0ad82dad80 | ||
|
|
99c36ed2f2 | ||
|
|
44878e583a | ||
|
|
0723a85ab3 | ||
|
|
d8dae365f6 | ||
|
|
bccb86a401 | ||
|
|
592e743349 | ||
|
|
fb6161e9ac | ||
|
|
787277d282 | ||
|
|
540ee69773 | ||
|
|
0d2c87fe4e | ||
|
|
2460de9713 | ||
|
|
0d32f42d26 | ||
|
|
277497684e | ||
|
|
f4a83e516c | ||
|
|
d2eb1ed9a5 | ||
|
|
a3ec5846df | ||
|
|
b6047899a8 | ||
|
|
3516070b6e | ||
|
|
56ec87e00e | ||
|
|
fe0b896665 | ||
|
|
e4721417e6 | ||
|
|
45f5b3b648 | ||
|
|
3123102211 | ||
|
|
c6141ffbc7 | ||
|
|
c0e92d06a5 | ||
|
|
274b2682d6 | ||
|
|
171d661b84 | ||
|
|
5cea8da664 | ||
|
|
44dd52d08f | ||
|
|
70648d006d | ||
|
|
43e6a9e9ee | ||
|
|
0599c1710b | ||
|
|
abf218a9cd | ||
|
|
55f4f9aaeb | ||
|
|
82b7e1dbcb | ||
|
|
e8f8b0f8e5 | ||
|
|
7566d4fbab | ||
|
|
3a0d385119 | ||
|
|
a465afa83d | ||
|
|
185e90c40f | ||
|
|
e29c2d0260 | ||
|
|
acf6425ae9 | ||
|
|
5e8d49de0f | ||
|
|
1f9456a462 | ||
|
|
a7d8285c3a | ||
|
|
5f1dc4b851 | ||
|
|
b1c22949c5 | ||
|
|
29be175743 | ||
|
|
b6c5ba264b | ||
|
|
8e7e3c2b11 | ||
|
|
0e7df129d8 | ||
|
|
50709cbd21 | ||
|
|
fd6e8d8c5c | ||
|
|
2e7496130c | ||
|
|
9666ab5797 | ||
|
|
4c08ac7873 | ||
|
|
5435ec7545 | ||
|
|
8764d50179 | ||
|
|
62cdb8dc94 | ||
|
|
9918a1092f | ||
|
|
7d89511fda | ||
|
|
795b6d13d1 | ||
|
|
8328b6f657 | ||
|
|
9994e591bd | ||
|
|
b27a38e55e | ||
|
|
f6d747a5a0 | ||
|
|
b7da7574d1 | ||
|
|
dbad9585cd | ||
|
|
2d7a97bb94 | ||
|
|
da19da0360 | ||
|
|
ee7361ee2e | ||
|
|
6e3e09bed4 | ||
|
|
86762d2b40 | ||
|
|
ef12c5af99 | ||
|
|
933404b1dd | ||
|
|
ccec49e444 | ||
|
|
e5f1bf81f7 | ||
|
|
0e627f4f68 | ||
|
|
d33f7d2bf5 | ||
|
|
e07a019615 | ||
|
|
34ca3012e6 | ||
|
|
62634ca2da | ||
|
|
846c96e8d5 | ||
|
|
63775723c1 | ||
|
|
2f7d3e655a | ||
|
|
b19634d7e4 | ||
|
|
a92967a7c1 | ||
|
|
8915b88de5 | ||
|
|
7bca81464b | ||
|
|
b974ece24f | ||
|
|
b1c8e6ad59 | ||
|
|
64f7185e3a | ||
|
|
807cc9afc3 | ||
|
|
0adf306dd4 | ||
|
|
db0f602e86 | ||
|
|
17ec47f5c0 | ||
|
|
cf831d9cd3 | ||
|
|
5e3c633f74 | ||
|
|
4e4b27b6ab | ||
|
|
c0c9590904 | ||
|
|
24c9577e39 | ||
|
|
59ee0cfe88 | ||
|
|
1977b9b764 | ||
|
|
6f9d1fc14c | ||
|
|
8ac59ae2be | ||
|
|
46db37e06c | ||
|
|
9d1207b339 | ||
|
|
6e730cfad1 | ||
|
|
199b3345a0 | ||
|
|
b7f504b8a4 | ||
|
|
1b459b0560 | ||
|
|
40803a4dc1 | ||
|
|
6f22570648 | ||
|
|
8203547cfc | ||
|
|
dad160209e | ||
|
|
8faaaec710 | ||
|
|
012fba617d | ||
|
|
9ca495229b | ||
|
|
e63f624d3a | ||
|
|
e1dd413266 | ||
|
|
b9ef09dd58 | ||
|
|
990333e7ec | ||
|
|
ec9582f3f2 | ||
|
|
ea65386e15 | ||
|
|
a0fd4ad23f | ||
|
|
b6d7a95028 | ||
|
|
1d8f3cee62 | ||
|
|
5ba6e21967 | ||
|
|
52f7f6e6cf | ||
|
|
9fd5ec673b | ||
|
|
e905b3c963 | ||
|
|
f12370c348 | ||
|
|
b727e2a67a | ||
|
|
8e87319925 | ||
|
|
1ab29b1ab0 | ||
|
|
52d55e34e6 | ||
|
|
c79360f58b | ||
|
|
8057c826bc | ||
|
|
6f6138c500 | ||
|
|
903a18db1d | ||
|
|
0731f3f1a9 | ||
|
|
37047a39f9 | ||
|
|
91d0cbe892 | ||
|
|
b66431bc29 | ||
|
|
0e18b14087 | ||
|
|
31bd413166 | ||
|
|
95a6fce2b4 | ||
|
|
0b5472f9fb | ||
|
|
5280d28505 | ||
|
|
67a9898a99 | ||
|
|
fe8815f80f | ||
|
|
3a21fdc304 | ||
|
|
83d723eb79 | ||
|
|
6e771607c0 | ||
|
|
e73b220104 | ||
|
|
5c1fc43610 | ||
|
|
cfbd7e3bf5 | ||
|
|
c8ca1cfa3c | ||
|
|
5cfbb0a423 | ||
|
|
900ec143a8 | ||
|
|
7bda3d0f74 | ||
|
|
7650786fb5 | ||
|
|
ca60d08621 | ||
|
|
b34218c8c2 | ||
|
|
b14a59629c | ||
|
|
0914bf8cf0 | ||
|
|
7bdca83de3 | ||
|
|
846f03504e | ||
|
|
01e8fd0b07 | ||
|
|
7f301c44b7 | ||
|
|
51a25fdec9 | ||
|
|
2b681c37ac | ||
|
|
cb4ebfdbd2 | ||
|
|
206c85222c | ||
|
|
18071e038e | ||
|
|
39f7ce15ad | ||
|
|
e39b42bbd3 | ||
|
|
607d8f72e8 | ||
|
|
c483f75fb4 | ||
|
|
81f0175251 | ||
|
|
f753519729 | ||
|
|
f39693f97e | ||
|
|
f83ae0e39e | ||
|
|
521d371b5d | ||
|
|
b23d551d00 | ||
|
|
1b20cc6075 | ||
|
|
2043e12ac2 | ||
|
|
9461bc948f | ||
|
|
9740ab8bd6 | ||
|
|
6947a6b1d4 | ||
|
|
4da8036222 | ||
|
|
e6b4006c70 | ||
|
|
8f5f7f1baa | ||
|
|
573d3eea87 | ||
|
|
eb84eec0f4 | ||
|
|
d7a31088ba | ||
|
|
a028e04ab9 | ||
|
|
a0520536df | ||
|
|
af137fd5d3 | ||
|
|
f7bc9f01c9 | ||
|
|
e4ce1ffd85 | ||
|
|
2384b49156 | ||
|
|
f5e71f64ed | ||
|
|
927ef22cf8 | ||
|
|
b6eaec1278 | ||
|
|
c7d1eb71da | ||
|
|
7d41d267a3 | ||
|
|
0ead65ad2d | ||
|
|
8c5481a3d5 | ||
|
|
741258051e | ||
|
|
0f4fc8635b | ||
|
|
d02d3f72fe | ||
|
|
710b69fc75 | ||
|
|
4fae382ffd | ||
|
|
68b94a3188 | ||
|
|
8e04f83232 | ||
|
|
cc9fd9f8ce | ||
|
|
1e8fcf1344 | ||
|
|
809c8305b1 | ||
|
|
652c7e8f37 | ||
|
|
beebca98fe | ||
|
|
ce67abc32f | ||
|
|
52cc482521 | ||
|
|
5eacad444d | ||
|
|
e8155cbbeb | ||
|
|
663376e385 | ||
|
|
3c590994db | ||
|
|
14c8564893 | ||
|
|
91a37f8868 | ||
|
|
1a2ff884b3 | ||
|
|
0298719be0 | ||
|
|
d0746da5e2 | ||
|
|
5b1cf33b1b | ||
|
|
54a1bbd016 | ||
|
|
455cd5551b | ||
|
|
b3e1783658 | ||
|
|
906c83af83 | ||
|
|
f9900cc6fb | ||
|
|
8e20187d8c | ||
|
|
28dac7ff0e | ||
|
|
e385b3d377 | ||
|
|
7e5c68c553 | ||
|
|
39ad7bc741 | ||
|
|
c2f9aab068 | ||
|
|
7e105343e2 | ||
|
|
fe2215df00 | ||
|
|
640bbaabbf | ||
|
|
da2965cb4e | ||
|
|
94ba242c33 | ||
|
|
debd5a5c5e | ||
|
|
98bbb84a63 | ||
|
|
9d908a11ed | ||
|
|
4d599e2f9f | ||
|
|
d3b33e5512 | ||
|
|
c8487cc395 | ||
|
|
0b3b5f6174 |
No files matched your search
+1
-1
@@ -57,7 +57,7 @@ SpacesInCStyleCastParentheses: 'false'
|
||||
SpacesInContainerLiterals: 'true'
|
||||
SpacesInParentheses: 'false'
|
||||
SpacesInSquareBrackets: 'false'
|
||||
UseTab: 'Always'
|
||||
UseTab: 'Never'
|
||||
|
||||
---
|
||||
Language: Cpp
|
||||
|
||||
@@ -4,8 +4,3 @@ CompileFlags:
|
||||
- "-I../ext"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
- "-I../ext/opentelemetry-cpp-1.21.0/api/include"
|
||||
- "-I./ext"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
- "-I./ext/opentelemetry-cpp-1.21.0/api/include"
|
||||
@@ -1,2 +0,0 @@
|
||||
.git/
|
||||
workspace/
|
||||
@@ -1,4 +0,0 @@
|
||||
ext/bin/tap-windows-ndis6/x64/zttap300.inf eol=crlf
|
||||
ext/bin/tap-windows-ndis6/x64.old/zttap300.inf eol=crlf
|
||||
ext/bin/tap-windows-ndis6/x86/zttap300.inf eol=crlf
|
||||
windows/TapDriver6/zttap300.inf eol=crlf
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
|
||||
---
|
||||
**Alternative, faster ways to get help**
|
||||
If you have just started using ZeroTier, here are some places to get help:
|
||||
- my.zerotier.com has a _Community_ tab. It's a live chat with other users and the developers.
|
||||
- [ZeroTier Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview)
|
||||
- www.zerotier.com has a Contact Us button
|
||||
- email contact@zerotier.com
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Create a Network '...'
|
||||
2. Install zerotier-one '....'
|
||||
3. '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots or console output to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Mac, Linux, Windows, BSD]
|
||||
- OS/Distribution Version
|
||||
- ZeroTier Version [e.g. 1.2.4]
|
||||
- Hardware [e.g. raspberry pi 3]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Version [e.g. 1.2.4]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
- ZeroTier Network Configuration
|
||||
- Router Config
|
||||
- Firewall Config (try turning the firewall off)
|
||||
- General Network Environment: [ e.g Home, University Campus, Corporate LAN ]
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
name: Bugs and Issues
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: NEEDS TRIAGE
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
# Before filing a Bug Report
|
||||
|
||||
_Using these will ensure you get quicker support, and make this space available for code-related issues. Thank you!_
|
||||
|
||||
- [Docs Site](https://docs.zerotier.com/zerotier/troubleshooting) => Troubleshooting, quickstarts, and more advanced topics.
|
||||
- [Discuss Forum](https://discuss.zerotier.com/) => Our discussion forum for users and support to mutually resolve issues & suggest ideas.
|
||||
- [Reddit](https://www.reddit.com/r/zerotier/) => Our subreddit, which we monitor regularly and is fairly active.
|
||||
- [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview) => Older wiki.
|
||||
|
||||
If you are having a connection issue, it's much easier to diagnose through the discussion forum or the ticket system.
|
||||
|
||||
|
||||
# If you still want to file a Bug Report
|
||||
|
||||
## Please let us know
|
||||
|
||||
- What you expect to be happening.
|
||||
- What is actually happening?
|
||||
- Any steps to reproduce the error.
|
||||
- Any relevant console output or screenshots.
|
||||
- What operating system and ZeroTier version. Please try the latest ZeroTier release.
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: "[Feature Request] "
|
||||
labels: suggestion
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
If there is something you'd like to have added to ZeroTier, to go to https://discuss.zerotier.com/c/feature-requests/ instead. Issues there can be voted on and discussed in-depth.
|
||||
**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.
|
||||
|
||||
Thank you!
|
||||
**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.
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
name: Game Connection Issue
|
||||
about: Game issues are better served by forum posts
|
||||
title: Please go to our Discuss or Reddit for game-related issues. Thanks!
|
||||
labels: wontfix
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Are you having trouble connecting to a game on your virtual network after installing ZeroTier?
|
||||
|
||||
- [ ] Yes
|
||||
- [ ] No
|
||||
|
||||
If you answered yes, then it is very likely that your question would be better answered on our [Community Forums](https://discuss.zerotier.com) or [Reddit](https://www.reddit.com/r/zerotier/) community; we monitor both regularly. We also have extensive documentation on our [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). Thank you!
|
||||
@@ -1,126 +0,0 @@
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build_ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
targets: x86_64-unknown-linux-gnu
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-ubuntu-x64
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
build_macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust aarch64
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
components: rustfmt, clippy
|
||||
- name: Install Rust x86_64
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: x86_64-apple-darwin
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-mac
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
|
||||
build_windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf true
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('rustybits//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: setup msbuild
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- name: msbuild
|
||||
run: |
|
||||
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-windows
|
||||
path: windows/Build
|
||||
retention-days: 7
|
||||
@@ -1,497 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This test script joins Earth and pokes some stuff
|
||||
|
||||
TEST_NETWORK=8056c2e21c000001
|
||||
RUN_LENGTH=30
|
||||
TEST_FINISHED=false
|
||||
ZTO_VER=$(git describe --tags $(git rev-list --tags --max-count=1))
|
||||
ZTO_COMMIT=$(git rev-parse HEAD)
|
||||
ZTO_COMMIT_SHORT=$(git rev-parse --short HEAD)
|
||||
TEST_DIR_PREFIX="$ZTO_VER-$ZTO_COMMIT_SHORT-test-results"
|
||||
|
||||
TEST_OK=0
|
||||
TEST_FAIL=1
|
||||
|
||||
echo "Performing test on: $ZTO_VER-$ZTO_COMMIT_SHORT"
|
||||
TEST_FILEPATH_PREFIX="$TEST_DIR_PREFIX/$ZTO_COMMIT_SHORT"
|
||||
mkdir $TEST_DIR_PREFIX
|
||||
|
||||
# How long we will wait for ZT to come online before considering it a failure
|
||||
MAX_WAIT_SECS=30
|
||||
|
||||
ZT_PORT_NODE_1=9996
|
||||
ZT_PORT_NODE_2=9997
|
||||
|
||||
################################################################################
|
||||
# Multi-node connectivity and performance test #
|
||||
################################################################################
|
||||
|
||||
test() {
|
||||
|
||||
echo -e "\nPerforming pre-flight checks"
|
||||
|
||||
check_exit_on_invalid_identity
|
||||
|
||||
echo -e "\nRunning test for $RUN_LENGTH seconds"
|
||||
|
||||
export NS1="ip netns exec ns1"
|
||||
export NS2="ip netns exec ns2"
|
||||
|
||||
export ZT1="$NS1 ./zerotier-cli -p9996 -D$(pwd)/node1"
|
||||
# Specify custom port on one node to ensure that feature works
|
||||
export ZT2="$NS2 ./zerotier-cli -p9997 -D$(pwd)/node2"
|
||||
|
||||
echo -e "\nSetting up network namespaces..."
|
||||
echo "Setting up ns1"
|
||||
|
||||
ip netns add ns1
|
||||
$NS1 ip link set dev lo up
|
||||
ip link add veth0 type veth peer name veth1
|
||||
ip link set veth1 netns ns1
|
||||
ip addr add 192.168.0.1/24 dev veth0
|
||||
ip link set dev veth0 up
|
||||
|
||||
$NS1 ip addr add 192.168.0.2/24 dev veth1
|
||||
$NS1 ip link set dev veth1 up
|
||||
|
||||
# Add default route
|
||||
$NS1 ip route add default via 192.168.0.1
|
||||
|
||||
iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 \
|
||||
-o eth0 -j MASQUERADE
|
||||
iptables -A FORWARD -i eth0 -o veth0 -j ACCEPT
|
||||
iptables -A FORWARD -o eth0 -i veth0 -j ACCEPT
|
||||
|
||||
echo "Setting up ns2"
|
||||
ip netns add ns2
|
||||
$NS2 ip link set dev lo up
|
||||
ip link add veth2 type veth peer name veth3
|
||||
ip link set veth3 netns ns2
|
||||
ip addr add 192.168.1.1/24 dev veth2
|
||||
ip link set dev veth2 up
|
||||
|
||||
$NS2 ip addr add 192.168.1.2/24 dev veth3
|
||||
$NS2 ip link set dev veth3 up
|
||||
$NS2 ip route add default via 192.168.1.1
|
||||
|
||||
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 \
|
||||
-o eth0 -j MASQUERADE
|
||||
iptables -A FORWARD -i eth0 -o veth2 -j ACCEPT
|
||||
iptables -A FORWARD -o eth0 -i veth2 -j ACCEPT
|
||||
|
||||
# Allow forwarding
|
||||
sysctl -w net.ipv4.ip_forward=1
|
||||
|
||||
################################################################################
|
||||
# Memory Leak Check #
|
||||
################################################################################
|
||||
|
||||
export FILENAME_MEMORY_LOG="$TEST_FILEPATH_PREFIX-memory.log"
|
||||
|
||||
echo -e "\nStarting a ZeroTier instance in each namespace..."
|
||||
|
||||
export time_test_start=$(date +%s)
|
||||
|
||||
# Spam the CLI as ZeroTier is starting
|
||||
spam_cli 100
|
||||
|
||||
echo "Starting memory leak check"
|
||||
$NS1 sudo valgrind --demangle=yes --exit-on-first-error=yes \
|
||||
--error-exitcode=1 \
|
||||
--xml=yes \
|
||||
--xml-file=$FILENAME_MEMORY_LOG \
|
||||
--leak-check=full \
|
||||
./zerotier-one node1 -p$ZT_PORT_NODE_1 -U >>node_1.log 2>&1 &
|
||||
|
||||
# Second instance, not run in memory profiler
|
||||
# Don't set up internet access until _after_ zerotier is running
|
||||
# This has been a source of stuckness in the past.
|
||||
$NS2 ip addr del 192.168.1.2/24 dev veth3
|
||||
$NS2 sudo ./zerotier-one node2 -U -p$ZT_PORT_NODE_2 >>node_2.log 2>&1 &
|
||||
|
||||
sleep 10; # New HTTP control plane is a bit sluggish, so we delay here
|
||||
|
||||
check_bind_to_correct_ports $ZT_PORT_NODE_1
|
||||
check_bind_to_correct_ports $ZT_PORT_NODE_2
|
||||
|
||||
$NS2 ip addr add 192.168.1.2/24 dev veth3
|
||||
$NS2 ip route add default via 192.168.1.1
|
||||
|
||||
echo -e "\nPing from host to namespaces"
|
||||
|
||||
ping -c 3 192.168.0.1
|
||||
ping -c 3 192.168.1.1
|
||||
|
||||
echo -e "\nPing from namespace to host"
|
||||
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
$NS2 ping -c 3 192.168.0.2
|
||||
$NS2 ping -c 3 192.168.0.2
|
||||
|
||||
echo -e "\nPing from ns1 to ns2"
|
||||
|
||||
$NS1 ping -c 3 192.168.0.1
|
||||
|
||||
echo -e "\nPing from ns2 to ns1"
|
||||
|
||||
$NS2 ping -c 3 192.168.0.1
|
||||
|
||||
################################################################################
|
||||
# Online Check #
|
||||
################################################################################
|
||||
|
||||
echo "Waiting for ZeroTier to come online before attempting test..."
|
||||
node1_online=false
|
||||
node2_online=false
|
||||
both_instances_online=false
|
||||
time_zt_node1_start=$(date +%s)
|
||||
time_zt_node2_start=$(date +%s)
|
||||
|
||||
for ((s = 0; s <= $MAX_WAIT_SECS; s++)); do
|
||||
node1_online="$($ZT1 -j info | jq '.online' 2>/dev/null)"
|
||||
node2_online="$($ZT2 -j info | jq '.online' 2>/dev/null)"
|
||||
echo "Checking for online status: try #$s, node1:$node1_online, node2:$node2_online"
|
||||
if [[ "$node2_online" == "true" && "$node1_online" == "true" ]]; then
|
||||
export both_instances_online=true
|
||||
export time_to_both_nodes_online=$(date +%s)
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo -e "\n\nContents of ZeroTier home paths:"
|
||||
|
||||
ls -lga node1
|
||||
tree node1
|
||||
ls -lga node2
|
||||
tree node2
|
||||
|
||||
echo -e "\n\nRunning ZeroTier processes:"
|
||||
echo -e "\nNode 1:\n"
|
||||
$NS1 ps aux | grep zerotier-one
|
||||
echo -e "\nNode 2:\n"
|
||||
$NS2 ps aux | grep zerotier-one
|
||||
|
||||
echo -e "\n\nStatus of each instance:"
|
||||
|
||||
echo -e "\n\nNode 1:\n"
|
||||
$ZT1 status
|
||||
echo -e "\n\nNode 2:\n"
|
||||
$ZT2 status
|
||||
|
||||
if [[ "$both_instances_online" != "true" ]]; then
|
||||
exit_test_and_generate_report $TEST_FAIL "one or more nodes failed to come online"
|
||||
fi
|
||||
|
||||
echo -e "\nJoining networks"
|
||||
|
||||
$ZT1 join $TEST_NETWORK
|
||||
$ZT2 join $TEST_NETWORK
|
||||
|
||||
sleep 10
|
||||
|
||||
node1_ip4=$($ZT1 get $TEST_NETWORK ip4)
|
||||
node2_ip4=$($ZT2 get $TEST_NETWORK ip4)
|
||||
|
||||
echo "node1_ip4=$node1_ip4"
|
||||
echo "node2_ip4=$node2_ip4"
|
||||
|
||||
echo -e "\nPinging each node"
|
||||
|
||||
PING12_FILENAME="$TEST_FILEPATH_PREFIX-ping-1-to-2.txt"
|
||||
PING21_FILENAME="$TEST_FILEPATH_PREFIX-ping-2-to-1.txt"
|
||||
|
||||
$NS1 ping -c 16 $node2_ip4 >$PING12_FILENAME
|
||||
$NS2 ping -c 16 $node1_ip4 >$PING21_FILENAME
|
||||
|
||||
ping_loss_percent_1_to_2=$(cat $PING12_FILENAME |
|
||||
grep "packet loss" | awk '{print $6}' | sed 's/%//')
|
||||
ping_loss_percent_2_to_1=$(cat $PING21_FILENAME |
|
||||
grep "packet loss" | awk '{print $6}' | sed 's/%//')
|
||||
|
||||
# Normalize loss value
|
||||
export ping_loss_percent_1_to_2=$(echo "scale=2; $ping_loss_percent_1_to_2/100.0" | bc)
|
||||
export ping_loss_percent_2_to_1=$(echo "scale=2; $ping_loss_percent_2_to_1/100.0" | bc)
|
||||
|
||||
################################################################################
|
||||
# CLI Check #
|
||||
################################################################################
|
||||
|
||||
echo "Testing basic CLI functionality..."
|
||||
|
||||
spam_cli 10
|
||||
|
||||
$ZT1 join $TEST_NETWORK
|
||||
|
||||
$ZT1 -h
|
||||
$ZT1 -v
|
||||
$ZT1 status
|
||||
$ZT1 info
|
||||
$ZT1 listnetworks
|
||||
$ZT1 peers
|
||||
$ZT1 listpeers
|
||||
|
||||
$ZT1 -j status
|
||||
$ZT1 -j info
|
||||
$ZT1 -j listnetworks
|
||||
$ZT1 -j peers
|
||||
$ZT1 -j listpeers
|
||||
|
||||
$ZT1 dump
|
||||
|
||||
$ZT1 get $TEST_NETWORK allowDNS
|
||||
$ZT1 get $TEST_NETWORK allowDefault
|
||||
$ZT1 get $TEST_NETWORK allowGlobal
|
||||
$ZT1 get $TEST_NETWORK allowManaged
|
||||
$ZT1 get $TEST_NETWORK bridge
|
||||
$ZT1 get $TEST_NETWORK broadcastEnabled
|
||||
$ZT1 get $TEST_NETWORK dhcp
|
||||
$ZT1 get $TEST_NETWORK id
|
||||
$ZT1 get $TEST_NETWORK mac
|
||||
$ZT1 get $TEST_NETWORK mtu
|
||||
$ZT1 get $TEST_NETWORK name
|
||||
$ZT1 get $TEST_NETWORK netconfRevision
|
||||
$ZT1 get $TEST_NETWORK nwid
|
||||
$ZT1 get $TEST_NETWORK portDeviceName
|
||||
$ZT1 get $TEST_NETWORK portError
|
||||
$ZT1 get $TEST_NETWORK status
|
||||
$ZT1 get $TEST_NETWORK type
|
||||
|
||||
# Test an invalid command
|
||||
$ZT1 get $TEST_NETWORK derpderp
|
||||
|
||||
# TODO: Validate JSON
|
||||
|
||||
# Performance Test
|
||||
|
||||
export FILENAME_PERF_JSON="$TEST_FILEPATH_PREFIX-iperf.json"
|
||||
|
||||
echo -e "\nBeginning performance test:"
|
||||
|
||||
echo -e "\nStarting server:"
|
||||
|
||||
echo "$NS1 iperf3 -s &"
|
||||
sleep 1
|
||||
|
||||
echo -e "\nStarting client:"
|
||||
sleep 1
|
||||
|
||||
echo "$NS2 iperf3 --json -c $node1_ip4 > $FILENAME_PERF_JSON"
|
||||
|
||||
cat $FILENAME_PERF_JSON
|
||||
|
||||
# Let ZeroTier idle long enough for various timers
|
||||
|
||||
echo -e "\nIdling ZeroTier for $RUN_LENGTH seconds..."
|
||||
sleep $RUN_LENGTH
|
||||
|
||||
echo -e "\nLeaving networks"
|
||||
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
$ZT2 leave $TEST_NETWORK
|
||||
|
||||
sleep 5
|
||||
|
||||
exit_test_and_generate_report $TEST_OK "completed test"
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Generate report #
|
||||
################################################################################
|
||||
|
||||
exit_test_and_generate_report() {
|
||||
|
||||
echo -e "\nStopping memory check..."
|
||||
sudo pkill -15 -f valgrind
|
||||
sleep 10
|
||||
|
||||
time_test_end=$(date +%s)
|
||||
|
||||
echo "Exiting test with reason: $2 ($1)"
|
||||
|
||||
# Collect ZeroTier dump files
|
||||
|
||||
echo -e "\nCollecting ZeroTier dump files"
|
||||
|
||||
node1_id=$($ZT1 -j status | jq -r .address)
|
||||
node2_id=$($ZT2 -j status | jq -r .address)
|
||||
|
||||
$ZT1 dump
|
||||
mv zerotier_dump.txt "$TEST_FILEPATH_PREFIX-node-dump-$node1_id.txt"
|
||||
|
||||
$ZT2 dump
|
||||
mv zerotier_dump.txt "$TEST_FILEPATH_PREFIX-node-dump-$node2_id.txt"
|
||||
|
||||
# Copy ZeroTier stdout/stderr logs
|
||||
|
||||
cp node_1.log "$TEST_FILEPATH_PREFIX-node-log-$node1_id.txt"
|
||||
cp node_2.log "$TEST_FILEPATH_PREFIX-node-log-$node2_id.txt"
|
||||
|
||||
# Generate report
|
||||
|
||||
cat $FILENAME_MEMORY_LOG
|
||||
|
||||
DEFINITELY_LOST=$(xmlstarlet sel -t -v '/valgrindoutput/error/xwhat' \
|
||||
$FILENAME_MEMORY_LOG | grep "definitely" | awk '{print $1;}')
|
||||
POSSIBLY_LOST=$(xmlstarlet sel -t -v '/valgrindoutput/error/xwhat' \
|
||||
$FILENAME_MEMORY_LOG | grep "possibly" | awk '{print $1;}')
|
||||
|
||||
# Generate coverage report artifact and summary
|
||||
|
||||
FILENAME_COVERAGE_JSON="$TEST_FILEPATH_PREFIX-coverage.json"
|
||||
FILENAME_COVERAGE_HTML="$TEST_FILEPATH_PREFIX-coverage.html"
|
||||
|
||||
echo -e "\nGenerating coverage test report..."
|
||||
|
||||
gcovr -r . --exclude ext --json-summary $FILENAME_COVERAGE_JSON \
|
||||
--html >$FILENAME_COVERAGE_HTML
|
||||
|
||||
cat $FILENAME_COVERAGE_JSON
|
||||
|
||||
COVERAGE_LINE_COVERED=$(cat $FILENAME_COVERAGE_JSON | jq .line_covered)
|
||||
COVERAGE_LINE_TOTAL=$(cat $FILENAME_COVERAGE_JSON | jq .line_total)
|
||||
COVERAGE_LINE_PERCENT=$(cat $FILENAME_COVERAGE_JSON | jq .line_percent)
|
||||
|
||||
COVERAGE_LINE_COVERED="${COVERAGE_LINE_COVERED:-0}"
|
||||
COVERAGE_LINE_TOTAL="${COVERAGE_LINE_TOTAL:-0}"
|
||||
COVERAGE_LINE_PERCENT="${COVERAGE_LINE_PERCENT:-0}"
|
||||
|
||||
# Default values
|
||||
|
||||
DEFINITELY_LOST="${DEFINITELY_LOST:-0}"
|
||||
POSSIBLY_LOST="${POSSIBLY_LOST:-0}"
|
||||
ping_loss_percent_1_to_2="${ping_loss_percent_1_to_2:-100.0}"
|
||||
ping_loss_percent_2_to_1="${ping_loss_percent_2_to_1:-100.0}"
|
||||
time_to_both_nodes_online="${time_to_both_nodes_online:--1}"
|
||||
|
||||
# Summarize and emit json for trend reporting
|
||||
|
||||
FILENAME_SUMMARY="$TEST_FILEPATH_PREFIX-summary.json"
|
||||
|
||||
time_length_test=$((time_test_end - time_test_start))
|
||||
if [[ $time_to_both_nodes_online != -1 ]];
|
||||
then
|
||||
time_to_both_nodes_online=$((time_to_both_nodes_online - time_test_start))
|
||||
fi
|
||||
#time_length_zt_join=$((time_zt_join_end-time_zt_join_start))
|
||||
#time_length_zt_leave=$((time_zt_leave_end-time_zt_leave_start))
|
||||
#time_length_zt_can_still_ping=$((time_zt_can_still_ping-time_zt_leave_start))
|
||||
|
||||
summary=$(
|
||||
cat <<EOF
|
||||
{
|
||||
"version":"$ZTO_VER",
|
||||
"commit":"$ZTO_COMMIT",
|
||||
"arch_m":"$(uname -m)",
|
||||
"arch_a":"$(uname -a)",
|
||||
"binary_size":"$(stat -c %s zerotier-one)",
|
||||
"time_length_test":$time_length_test,
|
||||
"time_to_both_nodes_online":$time_to_both_nodes_online,
|
||||
"num_possible_bytes_lost": $POSSIBLY_LOST,
|
||||
"num_definite_bytes_lost": $DEFINITELY_LOST,
|
||||
"num_bad_formattings": $POSSIBLY_LOST,
|
||||
"coverage_lines_covered": $COVERAGE_LINE_COVERED,
|
||||
"coverage_lines_total": $COVERAGE_LINE_TOTAL,
|
||||
"coverage_lines_percent": $COVERAGE_LINE_PERCENT,
|
||||
"ping_loss_percent_1_to_2": $ping_loss_percent_1_to_2,
|
||||
"ping_loss_percent_2_to_1": $ping_loss_percent_2_to_1,
|
||||
"test_exit_code": $1,
|
||||
"test_exit_reason":"$2"
|
||||
}
|
||||
EOF
|
||||
)
|
||||
|
||||
echo $summary >$FILENAME_SUMMARY
|
||||
cat $FILENAME_SUMMARY
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# CLI Check #
|
||||
################################################################################
|
||||
|
||||
spam_cli() {
|
||||
echo "Spamming CLI..."
|
||||
# Rapidly spam the CLI with joins/leaves
|
||||
|
||||
MAX_TRIES="${1:-10}"
|
||||
|
||||
for ((s = 0; s <= MAX_TRIES; s++)); do
|
||||
$ZT1 status
|
||||
$ZT2 status
|
||||
sleep 0.1
|
||||
done
|
||||
|
||||
SPAM_TRIES=128
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 join $TEST_NETWORK
|
||||
done
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
done
|
||||
|
||||
for ((s = 0; s <= SPAM_TRIES; s++)); do
|
||||
$ZT1 leave $TEST_NETWORK
|
||||
$ZT1 join $TEST_NETWORK
|
||||
done
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Check for proper exit on load of invalid identity #
|
||||
################################################################################
|
||||
|
||||
check_exit_on_invalid_identity() {
|
||||
echo "Checking ZeroTier exits on invalid identity..."
|
||||
mkdir -p $(pwd)/exit_test
|
||||
ZT1="sudo ./zerotier-one -p9999 $(pwd)/exit_test"
|
||||
echo "asdfasdfasdfasdf" > $(pwd)/exit_test/identity.secret
|
||||
echo "asdfasdfasdfasdf" > $(pwd)/exit_test/authtoken.secret
|
||||
|
||||
echo "Launch ZeroTier with an invalid identity"
|
||||
$ZT1 &
|
||||
my_pid=$!
|
||||
|
||||
echo "Waiting 5 seconds"
|
||||
sleep 5
|
||||
|
||||
# check if process is running
|
||||
kill -0 $my_pid
|
||||
if [ $? -eq 0 ]; then
|
||||
exit_test_and_generate_report $TEST_FAIL "Exit test FAILED: Process still running after being fed an invalid identity"
|
||||
fi
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Check that we're binding to the primary port for TCP/TCP6/UDP #
|
||||
################################################################################
|
||||
|
||||
check_bind_to_correct_ports() {
|
||||
PORT_NUMBER=$1
|
||||
echo "Checking bound ports:"
|
||||
sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier"
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "tcp") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to tcp/$1"
|
||||
fi
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "tcp6") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to tcp6/$1"
|
||||
fi
|
||||
if [[ $(sudo netstat -anp | grep "$PORT_NUMBER" | grep "zerotier" | grep "udp") ]];
|
||||
then
|
||||
:
|
||||
else
|
||||
exit_test_and_generate_report $TEST_FAIL "ZeroTier did not bind to udp/$1"
|
||||
fi
|
||||
}
|
||||
|
||||
test "$@"
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
################################################################################
|
||||
# Set exit code depending on tool reports #
|
||||
################################################################################
|
||||
|
||||
DEFINITELY_LOST=$(cat *test-results/*summary.json | jq .num_definite_bytes_lost)
|
||||
EXIT_CODE=$(cat *test-results/*summary.json | jq .exit_code)
|
||||
EXIT_REASON=$(cat *test-results/*summary.json | jq .exit_reason)
|
||||
|
||||
cat *test-results/*summary.json
|
||||
|
||||
echo -e "\nBytes of memory definitely lost: $DEFINITELY_LOST"
|
||||
|
||||
if [[ "$DEFINITELY_LOST" -gt 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Catch-all for other non-zero exit codes
|
||||
|
||||
if [[ "$EXIT_CODE" -gt 0 ]]; then
|
||||
echo "Test failed: $EXIT_REASON"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,57 +0,0 @@
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build_ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: gitconfig
|
||||
run: |
|
||||
git config --global core.autocrlf input
|
||||
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: x86_64-unknown-linux-gnu
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
continue-on-error: false
|
||||
with:
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('zeroidc//Cargo.lock') }}
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
zeroidc/
|
||||
|
||||
- name: validate-1m-linux
|
||||
env:
|
||||
CC: 'gcc'
|
||||
CXX: 'g++'
|
||||
BRANCH: ${{ github.ref_name }}
|
||||
run: |
|
||||
sudo apt update && sudo apt install -y valgrind xmlstarlet gcovr iperf3 tree
|
||||
make one ZT_COVERAGE=1 ZT_TRACE=1
|
||||
sudo chmod +x ./.github/workflows/validate-linux.sh
|
||||
sudo ./.github/workflows/validate-linux.sh
|
||||
|
||||
- name: Archive test results
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{github.sha}}-test-results
|
||||
path: "*test-results*"
|
||||
|
||||
- name: final-report
|
||||
run: |
|
||||
sudo chmod +x ./.github/workflows/validate-report.sh
|
||||
sudo ./.github/workflows/validate-report.sh
|
||||
|
||||
Executable → Regular
+51
-101
@@ -1,27 +1,56 @@
|
||||
# Main binaries created in *nix builds
|
||||
/zerotier-one
|
||||
/zerotier-idtool
|
||||
/zerotier-cli
|
||||
/zerotier-selftest
|
||||
/zerotier
|
||||
/nltest
|
||||
|
||||
# IDE and dev tool stuff
|
||||
/.idea
|
||||
/.nova
|
||||
/compile_commands.json
|
||||
/.claude
|
||||
/.aider
|
||||
|
||||
# OS-created garbage files from various platforms
|
||||
build/
|
||||
/version.h
|
||||
.DS_Store
|
||||
.Trashes
|
||||
*.swp
|
||||
._*
|
||||
*~
|
||||
*~.nib
|
||||
.Apple*
|
||||
Thumbs.db
|
||||
@eaDir
|
||||
lost+found
|
||||
._*
|
||||
DerivedData/
|
||||
*.pbxuser
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
*.perspectivev3
|
||||
!default.pbxuser
|
||||
!default.mode1v3
|
||||
!default.mode2v3
|
||||
!default.perspectivev3
|
||||
*.xccheckout
|
||||
xcuserdata/
|
||||
.vscode
|
||||
__pycache__
|
||||
attic/world/*.c25519
|
||||
attic/world/mkworld
|
||||
*.log
|
||||
*.opensdf
|
||||
*.user
|
||||
*.cache
|
||||
*.obj
|
||||
*.tlog
|
||||
*.pid
|
||||
*.pkg
|
||||
*.o
|
||||
*.o-*
|
||||
*.core
|
||||
*.deb
|
||||
*.rpm
|
||||
*.autosave
|
||||
*.tmp
|
||||
.depend
|
||||
node_modules
|
||||
debian/files
|
||||
debian/zerotier-one
|
||||
debian/zerotier-one*.debhelper
|
||||
debian/*.log
|
||||
debian/zerotier-one.substvars
|
||||
root/identity.*
|
||||
root/config.*
|
||||
/ext/installfiles/windows/chocolatey/zerotier-one/*.nupkg
|
||||
/go/zerotier
|
||||
|
||||
# Windows build droppings
|
||||
/windows/ZeroTierOne.sdf
|
||||
/windows/ZeroTierOne.v11.suo
|
||||
/windows/x64
|
||||
@@ -38,8 +67,10 @@ lost+found
|
||||
/windows/WebUIWrapper/obj
|
||||
/windows/lib
|
||||
/ext/installfiles/windows/ZeroTier One-SetupFiles
|
||||
/ext/installfiles/windows/Prerequisites
|
||||
/ext/installfiles/windows/*-cache
|
||||
/ZeroTier One.msi
|
||||
/*.msi
|
||||
/windows/.vs
|
||||
*.vcxproj.backup
|
||||
/windows/TapDriver6/Win7Debug
|
||||
/windows/TapDriver6/win7Release
|
||||
@@ -48,51 +79,7 @@ lost+found
|
||||
enc_temp_folder
|
||||
/windows/copyutil/bin
|
||||
/windows/copyutil/obj
|
||||
.vs/
|
||||
|
||||
# *nix/Mac build droppings
|
||||
/build-*
|
||||
/ZeroTierOneInstaller-*
|
||||
/examples/docker/zerotier-one
|
||||
/examples/docker/test-*.env
|
||||
/world/mkworld
|
||||
/world/*.c25519
|
||||
zt1-src.tar.gz
|
||||
/MacEthernetTapAgent
|
||||
|
||||
# Miscellaneous temporaries, build files, etc.
|
||||
ext/installfiles/windows/*.back*.aip
|
||||
tcp-proxy/tcp-proxy
|
||||
rustybits/target
|
||||
*.log
|
||||
*.opensdf
|
||||
*.user
|
||||
*.cache
|
||||
*.tlog
|
||||
*.pid
|
||||
*.pkg
|
||||
*.o
|
||||
/*.a
|
||||
*.dylib
|
||||
*.so
|
||||
*.so.*
|
||||
*.o-*
|
||||
*.core
|
||||
*.deb
|
||||
*.rpm
|
||||
*.autosave
|
||||
*.tmp
|
||||
.depend
|
||||
node_modules
|
||||
zt1_update_*
|
||||
debian/files
|
||||
debian/zerotier-one
|
||||
debian/zerotier-one*.debhelper
|
||||
debian/*.log
|
||||
debian/zerotier-one.substvars
|
||||
root-watcher/config.json
|
||||
|
||||
# Java/Android/JNI build droppings
|
||||
java/obj/
|
||||
java/libs/
|
||||
java/bin/
|
||||
@@ -104,40 +91,3 @@ java/build_win32/
|
||||
windows/WinUI/obj/
|
||||
windows/WinUI/bin/
|
||||
windows/ZeroTierOne/Debug/
|
||||
/ext/installfiles/windows/chocolatey/zerotier-one/*.nupkg
|
||||
|
||||
# Miscellaneous mac/Xcode droppings
|
||||
.Trashes
|
||||
*.swp
|
||||
*~.nib
|
||||
DerivedData/
|
||||
*.pbxuser
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
*.perspectivev3
|
||||
!default.pbxuser
|
||||
!default.mode1v3
|
||||
!default.mode2v3
|
||||
!default.perspectivev3
|
||||
*.xccheckout
|
||||
xcuserdata/
|
||||
.vscode
|
||||
__pycache__
|
||||
*~
|
||||
attic/world/*.c25519
|
||||
attic/world/mkworld
|
||||
workspace/
|
||||
workspace2/
|
||||
zeroidc/target/
|
||||
tcp-proxy/target
|
||||
|
||||
# Snapcraft Linux build stuff
|
||||
/parts/
|
||||
/stage/
|
||||
/prime/
|
||||
*.snap
|
||||
.snapcraft
|
||||
__pycache__
|
||||
*.pyc
|
||||
*_source.tar.bz2
|
||||
snap/.snapcraft
|
||||
Generated
+3
@@ -0,0 +1,3 @@
|
||||
|
||||
# Default ignored files
|
||||
/workspace.xml
|
||||
Generated
+9
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Generated
+5
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</state>
|
||||
</component>
|
||||
Generated
+11
@@ -0,0 +1,11 @@
|
||||
<component name="ProjectDictionaryState">
|
||||
<dictionary name="api">
|
||||
<words>
|
||||
<w>apisocket</w>
|
||||
<w>nwid</w>
|
||||
<w>secrand</w>
|
||||
<w>sockaddr</w>
|
||||
<w>unmarshals</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
||||
<option name="processCode" value="true" />
|
||||
<option name="processLiterals" value="true" />
|
||||
<option name="processComments" value="true" />
|
||||
</inspection_tool>
|
||||
</profile>
|
||||
</component>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/ZeroTierOne.iml" filepath="$PROJECT_DIR$/.idea/ZeroTierOne.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
Loaded 20 of 3485 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user