Commit Graph

88 Commits

Author SHA1 Message Date
Thomas Eizinger
a8aafc9e14 ci: use bencher.dev for continuous benchmarking (#5915)
Currently, we have a homegrown benchmark suite that reports results of
the iperf runs within CI by comparing a run on `main` with the current
branch.

These comments are noisy because they happen on every PR, regardless of
the performance results. As a result, they tend to be skimmed over by
devs and not actually considered. To properly track performance, we need
to record benchmark results over time and use statistics to detect
regressions.

https://bencher.dev does exactly that. it supports various benchmark
harnesses to automatically collect benchmarks. For our case, we simply
use the generic JSON adapter to extract the relevant metrics from the
iperf results and report them to the bencher backend.

With these metrics in place, bencher can plot the results over time, and
alert us in the case of regressions using thresholds based on
statistical tests.

Resolves: #5818.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-07-24 01:22:17 +00:00
Reactor Scram
d0f68fc133 test(gui-client): multi-process smoke test for GUI + IPC service (#5672)
```[tasklist]
### Tasks
- [x] Check the GUI saves its settings file
- [x] Check the IPC service writes the device ID to disk
- [x] Check the GUI writes a log file (skipped - we already check if the exported zip has any files in it)
- [x] Run the crash file through `minidump-stackwalk`
- [x] Reach feature parity with the original smoke tests
- [x] Ready for review
- [x] Finish #5452
- [ ] Start on #5453 
```
2024-07-04 21:10:31 +00:00
Jamil
f4d9a204df ci: increase sleep for flaky integration tests due to slow GH runners (#5667)
Both of these deal with the tunnel interface being initialized, which
seems to take more than 1s when we have a lot of jobs running.

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-07-01 16:24:52 +00:00
dependabot[bot]
d939699e0c build(deps-dev): Bump @types/node from 20.14.2 to 20.14.9 in /scripts/tests/browser (#5650)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.14.2 to 20.14.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.14.2&new-version=20.14.9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 13:21:28 +00:00
dependabot[bot]
7a979179a4 build(deps): Bump puppeteer from 22.12.0 to 22.12.1 in /scripts/tests/browser (#5649)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.12.0
to 22.12.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v22.12.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.12.0...puppeteer-core-v22.12.1">22.12.1</a>
(2024-06-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>execution contexts might be created before previous is destroyed (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12666">#12666</a>)
(<a
href="db642d1d69">db642d1</a>)</li>
<li>reset the viewport after taking a fullPage screenshot if
defaultViewport is null (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12650">#12650</a>)
(<a
href="0a32283cfc">0a32283</a>)</li>
<li>roll to Chrome 126.0.6478.126 (r1300313) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12656">#12656</a>)
(<a
href="32ed82c623">32ed82c</a>)</li>
<li>use RAF-based polling for ARIA selectors (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12664">#12664</a>)
(<a
href="56d1d3f8b7">56d1d3f</a>)</li>
</ul>
<h2>puppeteer: v22.12.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.12.0...puppeteer-v22.12.1">22.12.1</a>
(2024-06-26)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 22.12.0 to 22.12.1</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1886390274"><code>1886390</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12659">#12659</a>)</li>
<li><a
href="db642d1d69"><code>db642d1</code></a>
fix: execution contexts might be created before previous is destroyed
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12666">#12666</a>)</li>
<li><a
href="56d1d3f8b7"><code>56d1d3f</code></a>
fix: use RAF-based polling for ARIA selectors (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12664">#12664</a>)</li>
<li><a
href="0a32283cfc"><code>0a32283</code></a>
fix: reset the viewport after taking a fullPage screenshot if
defaultViewport...</li>
<li><a
href="5d762bea00"><code>5d762be</code></a>
docs: fix some broken links (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12660">#12660</a>)</li>
<li><a
href="866f72021c"><code>866f720</code></a>
build(deps): relax dependency versions for non-puppeteer dependencies
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12649">#12649</a>)</li>
<li><a
href="32ed82c623"><code>32ed82c</code></a>
fix: roll to Chrome 126.0.6478.126 (r1300313) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12656">#12656</a>)</li>
<li><a
href="fbd6ca5505"><code>fbd6ca5</code></a>
docs: various docs improvements (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12651">#12651</a>)</li>
<li><a
href="9808d46131"><code>9808d46</code></a>
chore(deps): Bump glob from 10.4.1 to 10.4.2 in the dependencies group
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12639">#12639</a>)</li>
<li><a
href="add28900b8"><code>add2890</code></a>
docs: fix various typos (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12648">#12648</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.12.0...puppeteer-v22.12.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=22.12.0&new-version=22.12.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 13:17:22 +00:00
dependabot[bot]
258a7a0d74 build(deps-dev): Bump typescript from 5.4.5 to 5.5.2 in /scripts/tests/browser (#5648)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5
to 5.5.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.5</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for TypeScript v5.5.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.5 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-rc/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.5 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-5-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.5.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ce2e60e4ea"><code>ce2e60e</code></a>
Update LKG</li>
<li><a
href="f3b21a2033"><code>f3b21a2</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58931">#58931</a>
(Defer creation of barebonesLibSourc...) into release-5.5 (#...</li>
<li><a
href="7b1620bea2"><code>7b1620b</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58811">#58811</a>
(fix(58801): &quot;Move to file&quot; on globa...) into release-5.5
(#...</li>
<li><a
href="5367ae10f5"><code>5367ae1</code></a>
Bump version to 5.5.2 and LKG</li>
<li><a
href="02132e5b81"><code>02132e5</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58895">#58895</a>
(Fix global when typescript.js loade...) into release-5.5 (#...</li>
<li><a
href="45b1e3c254"><code>45b1e3c</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58872">#58872</a>
(Fix declaration emit crash) into release-5.5 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58874">#58874</a>)</li>
<li><a
href="17933ee33a"><code>17933ee</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58810">#58810</a>
(Fixed declaration emit issue relate...) into release-5.5 (#...</li>
<li><a
href="552b07e795"><code>552b07e</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58786">#58786</a>
(Fixed declaration emit crash relate...) into release-5.5 (#...</li>
<li><a
href="39c9eebf17"><code>39c9eeb</code></a>
Pick <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58857">#58857</a>
to release-5.5 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58858">#58858</a>)</li>
<li><a
href="2b0009c679"><code>2b0009c</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/Microsoft/TypeScript/issues/58846">#58846</a>
(Ensure the updates with crashes rev...) into release-5.5 (#...</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.4.5&new-version=5.5.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 13:15:46 +00:00
Thomas Eizinger
d3a091f90b ci: pre-install required tools for smoke tests (#5620)
Currently, the smoke tests rebuild the `dump_syms` and
`minidump-stackwalk` tools from scratch every time which is slow,
especially on Windows.

We can speed this up by utilising the `taiki-e/install-action` GitHub
action which discovers and downloads the latest binary releases of those
projects and installs them into $PATH.

I think those binaries might also be cached as part of the Rust cache
action (https://github.com/Swatinem/rust-cache) so the visible speed-up
is only within a few seconds and comes from the binaries not being
re-built inside the script.

Caching those binaries on Github still requires us to build them at
least once and also rebuild them in case the cache gets invalidated.
Hence I still think this is a good idea on its own.
2024-06-28 21:19:43 +00:00
dependabot[bot]
c7fbb750be build(deps): Bump the npm_and_yarn group in /scripts/tests/browser with 2 updates (#5499)
Bumps the npm_and_yarn group in /scripts/tests/browser with 2 updates:
[ws](https://github.com/websockets/ws) and
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `ws` from 8.17.0 to 8.17.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/websockets/ws/releases">ws's
releases</a>.</em></p>
<blockquote>
<h2>8.17.1</h2>
<h1>Bug fixes</h1>
<ul>
<li>Fixed a DoS vulnerability (<a
href="https://redirect.github.com/websockets/ws/issues/2231">#2231</a>).</li>
</ul>
<p>A request with a number of headers exceeding
the[<code>server.maxHeadersCount</code>][]
threshold could be used to crash a ws server.</p>
<pre lang="js"><code>const http = require('http');
const WebSocket = require('ws');
<p>const wss = new WebSocket.Server({ port: 0 }, function () {
const chars =
&quot;!#$%&amp;'*+-.0123456789abcdefghijklmnopqrstuvwxyz^_`|~&quot;.split('');
const headers = {};
let count = 0;</p>
<p>for (let i = 0; i &lt; chars.length; i++) {
if (count === 2000) break;</p>
<pre><code>for (let j = 0; j &amp;lt; chars.length; j++) {
  const key = chars[i] + chars[j];
  headers[key] = 'x';

  if (++count === 2000) break;
}
</code></pre>
<p>}</p>
<p>headers.Connection = 'Upgrade';
headers.Upgrade = 'websocket';
headers['Sec-WebSocket-Key'] = 'dGhlIHNhbXBsZSBub25jZQ==';
headers['Sec-WebSocket-Version'] = '13';</p>
<p>const request = http.request({
headers: headers,
host: '127.0.0.1',
port: wss.address().port
});</p>
<p>request.end();
});
</code></pre></p>
<p>The vulnerability was reported by <a
href="https://github.com/rrlapointe">Ryan LaPointe</a> in <a
href="https://redirect.github.com/websockets/ws/issues/2230">websockets/ws#2230</a>.</p>
<p>In vulnerable versions of ws, the issue can be mitigated in the
following ways:</p>
<ol>
<li>Reduce the maximum allowed length of the request headers using the
[<code>--max-http-header-size=size</code>][] and/or the
[<code>maxHeaderSize</code>][] options so
that no more headers than the <code>server.maxHeadersCount</code> limit
can be sent.</li>
</ol>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3c56601092"><code>3c56601</code></a>
[dist] 8.17.1</li>
<li><a
href="e55e5106f1"><code>e55e510</code></a>
[security] Fix crash when the Upgrade header cannot be read (<a
href="https://redirect.github.com/websockets/ws/issues/2231">#2231</a>)</li>
<li><a
href="6a00029edd"><code>6a00029</code></a>
[test] Increase code coverage</li>
<li><a
href="ddfe4a804d"><code>ddfe4a8</code></a>
[perf] Reduce the amount of <code>crypto.randomFillSync()</code>
calls</li>
<li>See full diff in <a
href="https://github.com/websockets/ws/compare/8.17.0...8.17.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `puppeteer` from 22.10.1 to 22.12.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v22.12.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.11.2...puppeteer-core-v22.12.0">22.12.0</a>
(2024-06-21)</h2>
<h3>Features</h3>
<ul>
<li>support AbortSignal in
page.waitForRequest/Response/NetworkIdle/Frame (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12621">#12621</a>)
(<a
href="54ecea7db5">54ecea7</a>)</li>
<li><strong>webdriver:</strong> support for <code>PageEvent.Popup</code>
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12612">#12612</a>)
(<a
href="293926b61a">293926b</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>performance:</strong> clear targets on browser context close
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12609">#12609</a>)
(<a
href="660975824a">6609758</a>)</li>
<li>roll to Chrome 126.0.6478.62 (r1300313) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12615">#12615</a>)
(<a
href="80dd1316a0">80dd131</a>)</li>
<li>roll to Chrome 126.0.6478.63 (r1300313) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12632">#12632</a>)
(<a
href="20ed8fcb14">20ed8fc</a>)</li>
</ul>
<h2>puppeteer: v22.12.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.11.2...puppeteer-v22.12.0">22.12.0</a>
(2024-06-21)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 22.11.2 to 22.12.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer-core: v22.11.2</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.11.1...puppeteer-core-v22.11.2">22.11.2</a>
(2024-06-18)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> bump ws to 8.17.1 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12605">#12605</a>)
(<a
href="49bcb2537e">49bcb25</a>)</li>
</ul>
<h2>puppeteer: v22.11.2</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.11.1...puppeteer-v22.11.2">22.11.2</a>
(2024-06-18)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6937a76f0a"><code>6937a76</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12610">#12610</a>)</li>
<li><a
href="20ed8fcb14"><code>20ed8fc</code></a>
fix: roll to Chrome 126.0.6478.63 (r1300313) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12632">#12632</a>)</li>
<li><a
href="e8b29e6742"><code>e8b29e6</code></a>
chore(main): release ng-schematics 0.6.1 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12623">#12623</a>)</li>
<li><a
href="26d59cfccc"><code>26d59cf</code></a>
docs: document pierce/ (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12630">#12630</a>)</li>
<li><a
href="8edf120b75"><code>8edf120</code></a>
docs: fix whitespace in docs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12629">#12629</a>)</li>
<li><a
href="34fe0d0309"><code>34fe0d0</code></a>
ci: fix canary ci (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12628">#12628</a>)</li>
<li><a
href="c70c0780d4"><code>c70c078</code></a>
docs: update locator docs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12603">#12603</a>)</li>
<li><a
href="fdf40e90d5"><code>fdf40e9</code></a>
chore(deps): Bump the all group across 1 directory with 3 updates (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12600">#12600</a>)</li>
<li><a
href="96022e0468"><code>96022e0</code></a>
build(deps): update ng-schematics (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12624">#12624</a>)</li>
<li><a
href="54ecea7db5"><code>54ecea7</code></a>
feat: support AbortSignal in
page.waitForRequest/Response/NetworkIdle/Frame (...</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.10.1...puppeteer-v22.12.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/firezone/firezone/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-26 20:48:07 +00:00
Thomas Eizinger
7159ffb34b ci: timeout curl requests after 30s (#5537)
Currently, we rely on curl's default timeout when connecting to a
resource. This is problematic because the `direct-dns` and `relayed-dns`
integration tests check that a certain resource _isn't_ accessible and
this test currently waits for 5 minutes to assert that.

We can shorten this and thus every CI by passing a `--connect-timeout`
to `curl`.

See
https://github.com/firezone/firezone/actions/runs/9656570163/job/26634409843#step:6:445
for an example CI run on `main`.
2024-06-25 06:07:13 +00:00
Thomas Eizinger
eec615eddb refactor(connlib): drop all connections when roaming (#5308)
Currently, `snownet` tries to be very clever in how it roams
connections. This is/was necessary because we associated DNS-specific
state with a connection. More specifically, the assigned proxy IPs for a
DNS resource are stored as part of a connection with the gateway.

As a result, DNS resources would always break if the underlying
connection in `snownet` failed. This is quite error prone and means,
`snownet` must be very careful to never-ever fail a connection
erroneously. With #5049, we no longer store any important state with a
connection and thus, can implement roaming in much simpler way: Drop all
connections and let the incoming packets create new ones. This is much
more robust as we don't have to "patch" existing state in `snownet` as
part of roaming.

We test this new functionality by adding a `RoamClient` transition to
`tunnel_test`. This ensures roaming works in a lot of scenarios,
including relayed and non-relayed situations as well as roaming between
either of them. As a result, we can delete several of the more specific
test cases of `snownet`.

Depends-On: #5049.
Replaces: #5060.
Resolves: #5080.
2024-06-25 03:53:00 +00:00
Reactor Scram
b8f92ed812 test(gui-client): fix zip file export in smoke tests (#5465)
Closes #5464

These were silently broken, it was exporting an empty zip and passing
the test anyway. So this PR will cause the test to fail if the zip
wasn't fully exported, and then it will fix the export.
2024-06-21 14:05:26 +00:00
dependabot[bot]
3cd724215c build(deps): Bump puppeteer from 22.10.0 to 22.10.1 in /scripts/tests/browser (#5316)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.10.0
to 22.10.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v22.10.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.10.0...puppeteer-core-v22.10.1">22.10.1</a>
(2024-06-11)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>add a way to run page.$$ without the isolation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12539">#12539</a>)
(<a
href="03e10a7559">03e10a7</a>)</li>
<li>align network conditions presets with DevTools (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12542">#12542</a>)
(<a
href="ee1074559d">ee10745</a>)</li>
<li>exposed functions should only be called once (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12560">#12560</a>)
(<a
href="8aac8b1ccb">8aac8b1</a>)</li>
<li><strong>performance:</strong> use Runtime.getProperties for improved
performance (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12561">#12561</a>)
(<a
href="8b2059f82a">8b2059f</a>)</li>
<li>roll to Chrome 125.0.6422.141 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12509">#12509</a>)
(<a
href="c4fdd102e9">c4fdd10</a>)</li>
<li>waitForSelector should work for pseudo classes (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12545">#12545</a>)
(<a
href="0b2999f7b1">0b2999f</a>)</li>
<li><strong>webdriver:</strong> default values for touch events (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12554">#12554</a>)
(<a
href="4d6298837f">4d62988</a>)</li>
<li><strong>webdriver:</strong> frame url should not be updated on
navigationStarted (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12536">#12536</a>)
(<a
href="7d0423b12c">7d0423b</a>)</li>
<li><strong>webdriver:</strong> HTTPRequest redirect chain from first
request (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12506">#12506</a>)
(<a
href="68fd771293">68fd771</a>)</li>
</ul>
<h2>puppeteer: v22.10.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.10.0...puppeteer-v22.10.1">22.10.1</a>
(2024-06-11)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 22.10.0 to 22.10.1</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="defda0905f"><code>defda09</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12507">#12507</a>)</li>
<li><a
href="dfefbd100b"><code>dfefbd1</code></a>
build(deps): bump chromium-bidi to 0.5.23 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12569">#12569</a>)</li>
<li><a
href="aa54e970e9"><code>aa54e97</code></a>
chore(deps): Bump braces from 3.0.2 to 3.0.3 in /website (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12568">#12568</a>)</li>
<li><a
href="0ee705e25f"><code>0ee705e</code></a>
chore(build): update TypeScript to 5.4 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12567">#12567</a>)</li>
<li><a
href="03e10a7559"><code>03e10a7</code></a>
fix: add a way to run page.$$ without the isolation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12539">#12539</a>)</li>
<li><a
href="97451731da"><code>9745173</code></a>
chore(deps-dev): Bump the dev-dependencies group across 1 directory with
4 up...</li>
<li><a
href="c02ea3d7d9"><code>c02ea3d</code></a>
chore(deps): Bump chromium-bidi from 0.5.21 to 0.5.22 in the
dependencies gro...</li>
<li><a
href="33b3cefb83"><code>33b3cef</code></a>
chore: update types and test (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12564">#12564</a>)</li>
<li><a
href="8b2059f82a"><code>8b2059f</code></a>
fix(performance): use Runtime.getProperties for improved performance (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12561">#12561</a>)</li>
<li><a
href="0b2999f7b1"><code>0b2999f</code></a>
fix: waitForSelector should work for pseudo classes (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12545">#12545</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.10.0...puppeteer-v22.10.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=22.10.0&new-version=22.10.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-12 01:42:48 +00:00
dependabot[bot]
3e177230cd build(deps-dev): Bump @types/node from 20.13.0 to 20.14.2 in /scripts/tests/browser (#5317)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.13.0 to 20.14.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.13.0&new-version=20.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-11 18:42:40 +00:00
dependabot[bot]
41313ebc68 build(deps): Bump puppeteer from 22.7.1 to 22.10.0 in /scripts/tests/browser (#5172)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.7.1 to
22.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v22.10.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.9.0...puppeteer-core-v22.10.0">22.10.0</a>
(2024-05-24)</h2>
<h3>Features</h3>
<ul>
<li>support running Puppeteer in extensions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12459">#12459</a>)
(<a
href="3c6f01a31d">3c6f01a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>providing null to page.authenticate should disable authentication
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12203">#12203</a>)
(<a
href="f375267e79">f375267</a>)</li>
<li>roll to Chrome 125.0.6422.76 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12477">#12477</a>)
(<a
href="d83d9a6ae2">d83d9a6</a>)</li>
<li>roll to Chrome 125.0.6422.78 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12484">#12484</a>)
(<a
href="f30977f817">f30977f</a>)</li>
<li><strong>webdriver:</strong> emit single HTTPRequest for Auth
requests (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12455">#12455</a>)
(<a
href="637e82796b">637e827</a>)</li>
</ul>
<h2>puppeteer: v22.10.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.9.0...puppeteer-v22.10.0">22.10.0</a>
(2024-05-24)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 22.9.0 to 22.10.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer-core: v22.9.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.8.2...puppeteer-core-v22.9.0">22.9.0</a>
(2024-05-16)</h2>
<h3>Features</h3>
<ul>
<li>roll to Chrome 125.0.6422.60 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12446">#12446</a>)
(<a
href="3de9fd3f4c">3de9fd3</a>)</li>
</ul>
<h2>puppeteer: v22.9.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.8.2...puppeteer-v22.9.0">22.9.0</a>
(2024-05-16)</h2>
<h3>Features</h3>
<ul>
<li>roll to Chrome 125.0.6422.60 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12446">#12446</a>)
(<a
href="3de9fd3f4c">3de9fd3</a>)</li>
</ul>
<h3>Dependencies</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d963fcdd80"><code>d963fcd</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12456">#12456</a>)</li>
<li><a
href="f30977f817"><code>f30977f</code></a>
fix: roll to Chrome 125.0.6422.78 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12484">#12484</a>)</li>
<li><a
href="f375267e79"><code>f375267</code></a>
fix: providing null to page.authenticate should disable authentication
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12203">#12203</a>)</li>
<li><a
href="97a4951d52"><code>97a4951</code></a>
test: disable flaky installation test on macos-13 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12478">#12478</a>)</li>
<li><a
href="d83d9a6ae2"><code>d83d9a6</code></a>
fix: roll to Chrome 125.0.6422.76 (r1287751) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12477">#12477</a>)</li>
<li><a
href="045ed9530d"><code>045ed95</code></a>
test: add doctype to some screenshot tests to avoid running them in
quirks mo...</li>
<li><a
href="08b6545726"><code>08b6545</code></a>
docs: add guides to the sidebar (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12474">#12474</a>)</li>
<li><a
href="3c6f01a31d"><code>3c6f01a</code></a>
feat: support running Puppeteer in extensions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12459">#12459</a>)</li>
<li><a
href="c8a64c0f79"><code>c8a64c0</code></a>
chore: remove circular dependency (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12472">#12472</a>)</li>
<li><a
href="d7c3a7ae33"><code>d7c3a7a</code></a>
chore(deps): Bump the all group with 2 updates (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12464">#12464</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.7.1...puppeteer-v22.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=22.7.1&new-version=22.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 15:34:08 +00:00
dependabot[bot]
f2472c27b0 build(deps-dev): Bump @types/node from 20.12.7 to 20.13.0 in /scripts/tests/browser (#5173)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.12.7 to 20.13.0.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.12.7&new-version=20.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 15:24:49 +00:00
Reactor Scram
04fd2f9581 chore(gui-client): disable the Welcome screen only after the first sign-in (#5066)
Closes #5015.

This way if the user opens and closes the GUI without doing anything,
the Welcome screen still appears until they successfully sign in.
Previously the `ran_before` flag was set after the first GUI startup.

Tested on Windows once.
2024-05-21 18:20:40 +00:00
Reactor Scram
9c143bced3 test: remove backwards compatibility code for older Docker images (#4993)
Closes #4951
2024-05-15 17:08:30 +00:00
Jamil
469e970056 ci: fix flaky dns-systemd test by waiting a second before running (#4962)
It
[appears](https://github.com/firezone/firezone/actions/runs/9052492759/job/24870262108?pr=4961)
that occasionally the test runs before DNS sentinel is applied and/or
Resources updated.
2024-05-13 14:10:04 +00:00
Reactor Scram
0ad72f00d1 refactor(headless-client): remove "linux-client" alias (#4933)
Is this worth it?

```[tasklist]
### Before merging
- [x] Double-check docs and ask Jamil to review
- [x] Would need Brian to review the terraform thing
- [x] Make sure Docker compat isn't broken for existing users (shouldn't be, the image is still just `client`)
- [x] Decide whether compatibility tests need to pass (if something breaks after merge we can revert this)
```
2024-05-10 15:43:02 +00:00
Reactor Scram
390f9de811 refactor(ci): use the same test framework for headless client and IPC service (#4943)
This will fix an issue with `linux-group` and `token-path` that happens
when I try to split up the binaries.

```[tasklist]
### Before merging
- [x] Fix linux-group. That stub-ipc-client command doesn't even exist anymore
```
2024-05-10 14:57:55 +00:00
Reactor Scram
42bafa898c chore(ci): fix debug_exit in the flaky systemd DNS test (#4934)
If these fail we shouldn't bail out since we're already bailing out and
we need them to continue for debug output.

Refs #4921
2024-05-09 15:06:01 +00:00
Reactor Scram
65064b1907 chore(ci): add debugging for that flaky DNS test (#4926)
Refs #4921 

I'm not sure of the cause yet. This extra debugging code should narrow
it down.
2024-05-08 21:39:55 +00:00
Reactor Scram
cdebfa6901 chore(gui-client/linux): fix group name, firezone should be firezone-client (#4889)
Also improved the manual testing checklist a little
2024-05-06 14:09:30 +00:00
Reactor Scram
e8b1736cb0 chore(gui-client/linux): show an error if the user doesn't belong to the firezone group (#4822)
Ran into this during testing. For some reason Ubuntu 20.04, maybe
others, requires a reboot to add the desktop user to a group. I thought
logging out and back in should be enough but it's not.

<img width="527" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/4f7c2551-c7aa-4ecc-be55-66c6e6ac32a0">

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-05-03 14:04:21 +00:00
Reactor Scram
35a802d6d9 chore(gui-client/linux): add install script and change group to firezone-client (#4879)
Closes #4873
2024-05-02 17:51:28 +00:00
dependabot[bot]
6172d6c080 build(deps): Bump puppeteer from 22.6.4 to 22.7.1 in /scripts/tests/browser (#4866)
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.4 to
22.7.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v22.7.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.7.0...puppeteer-core-v22.7.1">22.7.1</a>
(2024-04-25)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>roll to Chrome 124.0.6367.78 (r1274542) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12314">#12314</a>)
(<a
href="1241ccc908">1241ccc</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 2.2.2 to 2.2.3</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v22.7.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.7.0...puppeteer-v22.7.1">22.7.1</a>
(2024-04-25)</h2>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 22.7.0 to 22.7.1</li>
<li><code>@​puppeteer/browsers</code> bumped from 2.2.2 to 2.2.3</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer-core: v22.7.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v22.6.5...puppeteer-core-v22.7.0">22.7.0</a>
(2024-04-23)</h2>
<h3>Features</h3>
<ul>
<li>roll to Chrome 124.0.6367.60 (r1274542) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12305">#12305</a>)
(<a
href="ed9d7dd2f5">ed9d7dd</a>)</li>
<li><strong>webdriver:</strong> support Network interception (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12279">#12279</a>)
(<a
href="8fa52a50bd">8fa52a5</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>performance:</strong> cache isolatedHandle (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12150">#12150</a>)
(<a
href="9a17ec3b2a">9a17ec3</a>)</li>
</ul>
<h2>puppeteer: v22.7.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.5...puppeteer-v22.7.0">22.7.0</a>
(2024-04-23)</h2>
<h3>Features</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="feef2a300e"><code>feef2a3</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12318">#12318</a>)</li>
<li><a
href="eba46368d8"><code>eba4636</code></a>
ci: switch to macos-13 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12326">#12326</a>)</li>
<li><a
href="e35e783a74"><code>e35e783</code></a>
chore: make a single visibility check (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12317">#12317</a>)</li>
<li><a
href="e254f746ee"><code>e254f74</code></a>
chore: remove type castings (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12322">#12322</a>)</li>
<li><a
href="97637036c1"><code>9763703</code></a>
test: change test for BrowserContext (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12321">#12321</a>)</li>
<li><a
href="c9a5644c65"><code>c9a5644</code></a>
fix(performance): speed up Firefox profile creation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12320">#12320</a>)</li>
<li><a
href="943ade77b7"><code>943ade7</code></a>
build(deps): bump chromium-bidi to 0.5.19 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12319">#12319</a>)</li>
<li><a
href="1241ccc908"><code>1241ccc</code></a>
fix: roll to Chrome 124.0.6367.78 (r1274542) (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12314">#12314</a>)</li>
<li><a
href="165e3ec10d"><code>165e3ec</code></a>
chore: update FF expectations after latest nighty (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12316">#12316</a>)</li>
<li><a
href="be259de95f"><code>be259de</code></a>
test: fail faster if browser crashes (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/12310">#12310</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.4...puppeteer-v22.7.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=22.6.4&new-version=22.7.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-01 14:39:38 +00:00
Reactor Scram
be4053f4f5 refactor(gui-client/linux): use the same systemd service file in CI as in production (#4832)
This will keep the files from going out of sync.

This PR also checks that the IPC service creates the IPC socket with
`root:firezone` as the owner and group, when running under systemd.
2024-05-01 14:05:50 +00:00
Jamil
a43f39ae8b perf: increase UDP send rate for performance test (#4793)
Now that we've worked out the flakiness from the iperf tests, we should
increase the UDP send rate so we have some benchmark of how many packets
we can actually handle before dropping.
2024-04-26 21:11:44 +00:00
Reactor Scram
bc940784bd refactor(linux-client): remove FIREZONE_ID from example systemd file (#4714)
For tests it doesn't hurt, but this will be used as a template for the
systemd service we ship to production, and that can't have the ID there.

So I'm also cleaning up a few other problems I noticed:
- I wanted to split the service files as part of #4531, so that the GUI
Client and headless Client can have separate sandbox rules. e.g, the
headless Client won't be allowed to create Unix domain sockets
- I'm punting more things to systemd, which allows us to tighten down
the sandbox further, e.g. creating `/var/lib/dev.firezone.client` and
`/run/dev.firezone.client` for us
- Closes #4461

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-04-25 23:08:06 +00:00
Jamil
0b83b12fd2 ci: bootstrap browser test harness if missing (#4767)
Should be a less brittle fix to the problem of testing release images
for `compat-tests` with the browser harness.
2024-04-24 17:02:47 +00:00
Reactor Scram
869dcfa02f fix(linux-client): forbid passing the token as a CLI arg (#4683)
Closes #4682 
Closes #4691 

```[tasklist]
# Before merging
- [x] Wait for `linux-group` test to go green on `main` (#4692)
- [ ] Wait for those browsers tests to get fixed
- [ ] *All* compatibility tests must pass on this branch
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-24 14:09:08 +00:00
Gabi
adc0bb73f7 test(client): add reconnection tests from a client using a headless browser (#4569)
Considered using Elixir and Rust to write the tests.

For Elixir, `wallaby` doesn't seem to have a way to attach to an
existing `chromium` instance, launching it each time, which makes it
hard to coordinate with the relay restart.

For Rust we considered `thirtyfour` which would be very nice since we
could test both firefox and chrome but each time it connects to the
instance it launches a new session making it hard to test the DNS cache
behavior.

We also considered `chrome_headless` for Rust it needs a small patch to
prevent it from closing the browser after `Drop` but it still presents a
problem, since it has no easy way to retrieve if loading a page has
succeeded. There are some workarounds such as retrieving the title that
we could have used but after some testing they are quite finnicky and we
don't want that for CI.

So I ended up settling for TypeScript but I'm open to other options, or
a fix for the previous ones!

There are some modifications still incoming for this PR, around the test
name and that sleep in the middle of the test doesn't look good so I
will probably add some retries, but the gist is here, will keep it in
draft until we expect it to be passing.

So feel free to do some initial reviews.

Note: the number of lines changed is greatly exaggerated by
`package.lock`

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-20 06:57:07 +00:00
Thomas Eizinger
51089b89e7 feat(connlib): smoothly migrate relayed connections (#4568)
Whenever we receive a `relays_presence` message from the portal, we
invalidate the candidates of all now disconnected relays and make
allocations on the new ones. This triggers signalling of new candidates
to the remote party and migrates the connection to the newly nominated
socket.

This still relies on #4613 until we have #4634.

Resolves: #4548.

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-20 06:16:35 +00:00
Reactor Scram
7081c71c10 chore(linux-client): allow custom token path (#4666)
```[tasklist]
# Before merging
- [x] Remove file extension `.txt`
- [x] Wait for `linux-group` test to go green on `main` (#4692)
- [x] *all* compatibility tests must be green on this branch
```

Closes #4664 
Closes #4665 

~~The compatibility tests are expected to fail until the next release is
cut, for the same reasons as in #4686~~

The compatibility test must be handled somehow, otherwise it'll turn
main red.
`linux-group` was moved out of integration / compatibility testing, but
the DNS tests do need the whole Docker + portal setup, so that one can't
move.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-19 18:50:24 +00:00
Reactor Scram
bc22fb2bf2 test(linux-client): move linux-group test out of integration tests (#4692)
Closes #4669 

This should stop the problem of `linux-group` failing because of trying
to test an older release that doesn't have the right CLI features

---------

Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-19 02:52:31 +00:00
Thomas Eizinger
4972e49b34 ci: run assertions inside docker container (#4680)
As part of #4568, we are adding a 2nd relay which showed some
short-comings of the current process state assertions because they were
running outside the docker containers, thus listing all relays as soon
as there are multiple.
2024-04-18 23:48:42 +00:00
Reactor Scram
926ffe6f07 test(linux-client): fix linux-group integration test (#4671)
Closes #4669 
(Once I figure out the cause and then fix it)
2024-04-18 14:05:24 +00:00
Reactor Scram
e7a4a83e3d chore(linux): only allow IPC connections from members of the firezone group (#4628)
```[tasklist]
### Before merging
- [x] Update KB
```

Maybe not a feature since Linux IPC isn't available to users yet?

I think it's okay if the new `linux-group` test fails in compatibility,
since it wasn't implemented at all back then.

Closes #4659
Closes #4660

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-17 21:42:29 +00:00
Reactor Scram
2f6f2ef260 test(linux-client): check if we can add the user to a group in a CI test (#4600)
Refs #4513

The next step after this is to use this to test security in the Linux
IPC code, it should reject any IPC commands from users not in the
`firezone` group.
2024-04-17 20:40:27 +00:00
Reactor Scram
1f2821415f chore(linux): ask systemd to limit our privileges (#4630)
Should drop our `systemd-analyze security` level from 9.7 to about 2.5.
We could go a little further, but it would take a lot more effort, and
this is a good starting point.

```[tasklist]
# Before review
- [x] Remove unused trap function in Bash
- [x] Remove `systemd-analyze` call
```
2024-04-17 16:11:29 +00:00
Reactor Scram
cdf2bc8838 refactor(test): use 'set -euox' instead of manual echos (#4637)
I wasn't aware of `set x` when I wrote this, and it looks good in the
other test scripts.

I'm not sourcing `lib.sh` yet, because I don't happen to need any
functions from it. I have other draft PRs that will probably end up
using it.
2024-04-16 17:36:43 +00:00
Jamil
05386b8b4b chore(ci): Use netstat instead of ss for release image tests (#4640)
Fixes #4636
2024-04-16 11:14:52 -06:00
Reactor Scram
7bc1d51b0f test(linux-client): separate the token from the systemd unit file (#4626)
This is needed so that we can auto-update the systemd unit file, either
manually, or with a package manager like `apt`. We don't want users
cut-and-pasting these together on every update, and we don't want
machines doing it. Making the file updatable means we can make security
fixes to it easily.
2024-04-15 20:38:49 +00:00
Thomas Eizinger
be1a719e2c chore(relay): perform graceful shutdown upon receiving SIGTERM (#4552)
Upon receiving a SIGTERM, we immediately disconnect from the websocket
connection to the portal and set a flag that we are shutting down.

Once we are disconnected from the portal and no longer have an active
allocations, we exit with 0. A repeated SIGTERM signal will interrupt
this process and force the relay to shutdown.

Disconnecting from the portal will (eventually) trigger a message to
clients and gateways that this relay should no longer be used. Thus,
depending on the timeout our supervisor has configured after sending
SIGTERM, the relay will continue all TURN operations until the number of
allocations drops to 0.

Currently, we also allow clients to make new allocations and refreshing
existing allocations. In the future, it may make sense to implement a
dedicated status code and refuse `ALLOCATE` and `REFRESH` messages
whilst we are shutting down.

Related: #4548.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-12 08:45:08 +00:00
Thomas Eizinger
26494b0e34 ci: reduce duplication in integration tests (#4583)
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-11 23:01:12 +00:00
Reactor Scram
3a67eacfbe refactor(linux-client): replace client-tunnel with headless-client which is the same thing (#4516)
Unfortunately I had to keep `linux-client` to get the compatibility
tests to pass. #4578 aims to remove that package.

Please add to this list if you think of anything:

```[tasklist]
# Things that may break that CI/CD won't catch
- [ ] Github release artifacts
- [ ] Knowledge base 
- [ ] Docker images
- [ ] Docker containers
- [ ] Existing `linux-client` users
- [ ] Anything that downloads ghcr artifacts
- [ ] Nix (Not sure if it's built in CI. It had a merge conflict)
```

Refs #4515, and #3712, #3782

I think this is what Thomas and I agreed on in Slack / Github

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-04-10 22:01:55 +00:00
Jamil
7d88e28872 chore(ci): Configure relay with new IP on restart tests (#4571)
See https://firezonehq.slack.com/archives/C0575SD66E5/p1712726575563089
2024-04-10 08:45:38 +00:00
Thomas Eizinger
8d49452668 ci: assert that nothing busy loops after the perf tests (#4546)
The clients, gateway and relay all employ an internal design that is
based on an eventloop. This gives us a lot of control in how various IO
components interact with each other. Great control also comes with a
source of bugs, the latest of which made the relay busy-loop once it
started relaying some traffic.

Eventloops are notoriously hard to unit-test because they compose
various IO bits together. Instead of writing unit tests, we can go and
assert the process state after the performance tests. Those generate a
fair bit of load on all our components but after that, they should
suspend.

The most effective tests survive even large refactorings and for that,
they need to be coded against a stable API / property. Asserting that
the process sleeps when it is idle from an application PoV is such a
property.

Related: #4511.
2024-04-09 07:09:50 +00:00
Jamil
09532ea845 chore(ci): Add portal and relay downtime DNS resource tests (#4517)
Tests that DNS still works in the client with established connections
after the portal and/or relay go down.
2024-04-08 09:43:59 +00:00
Reactor Scram
74a81b2a56 test(gui-client): unit test for Linux IPC (#4277)
(After GA)

This adds a unit test for the Unix domain sockets that I intend to use
for process splitting on Linux.

The length-prefixed encoding and decoding are copied from `subzone`, but
most of that code will not be re-used since it's Windows-specific and
also specific to a Chromium-like process model, which won't work for
Firezone.
2024-04-02 19:34:24 +00:00