Commit Graph

834 Commits

Author SHA1 Message Date
Reactor Scram
8b9df9a6f0 ci(windows): fix unused deps static analysis (#4898)
Fixes these type of errors:
https://github.com/firezone/firezone/actions/runs/8973627864/job/24644251114

Using `--no-self-update` as recommended here:
https://github.com/rust-lang/rustup/issues/2415#issuecomment-658752121

Probably was a regression introduced by a version bump in the Github
runner's Rustup or something
2024-05-06 20:14:30 +00:00
Jamil
989596cd35 ci: Disable android UI tests due to timeouts / flakiness (#4891)
See
https://github.com/firezone/firezone/pull/4178#issuecomment-2094815889
2024-05-05 07:17:35 -07:00
dependabot[bot]
61a2d3b78a build(deps): Bump hashicorp/tfc-workflows-github from 1.2.0 to 1.3.0 (#4841)
Bumps
[hashicorp/tfc-workflows-github](https://github.com/hashicorp/tfc-workflows-github)
from 1.2.0 to 1.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/tfc-workflows-github/releases">hashicorp/tfc-workflows-github's
releases</a>.</em></p>
<blockquote>
<h2>v1.3.0</h2>
<ul>
<li>Adds support for <code>target</code> input for
<code>create-run</code> action by <a
href="https://github.com/trutled3"><code>@​trutled3</code></a> <a
href="https://redirect.github.com/hashicorp/tfc-workflows-tooling/pull/97">#97</a></li>
<li>Bug fixes and enhancements from <a
href="https://github.com/hashicorp/tfc-workflows-tooling/releases/tag/v1.3.0">tfc-workflows-tooling@v1.3.0</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/tfc-workflows-github/blob/main/CHANGELOG.md">hashicorp/tfc-workflows-github's
changelog</a>.</em></p>
<blockquote>
<h1>v1.3.0</h1>
<ul>
<li>Adds support for <code>target</code> input for
<code>create-run</code> action by <a
href="https://github.com/trutled3"><code>@​trutled3</code></a> <a
href="https://redirect.github.com/hashicorp/tfc-workflows-tooling/pull/97">#97</a></li>
<li>Bug fixes and enhancements from <a
href="https://github.com/hashicorp/tfc-workflows-tooling/releases/tag/v1.3.0">tfc-workflows-tooling@v1.3.0</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="34866d21f6"><code>34866d2</code></a>
Prepare v1.3.0 release (<a
href="https://redirect.github.com/hashicorp/tfc-workflows-github/issues/43">#43</a>)</li>
<li>See full diff in <a
href="https://github.com/hashicorp/tfc-workflows-github/compare/v1.2.0...v1.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=hashicorp/tfc-workflows-github&package-manager=github_actions&previous-version=1.2.0&new-version=1.3.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-05-05 13:58:16 +00:00
Jamil
c0e65e4993 test(android): Only run tests for x86_64 android (#4870)
Prevents compiling for all targets only to run tests on `x86`.

---------

Signed-off-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
Co-authored-by: Jason Elie Bou Kheir <5115126+jasonboukheir@users.noreply.github.com>
2024-05-03 20:48:54 +00:00
Andrew Dryga
09f25d6e0c refactor(infra): Install gateways without using Docker (#4839) 2024-05-01 10:31:18 -06:00
dependabot[bot]
4bd02c8ea0 build(deps): Bump gradle/wrapper-validation-action from 2 to 3 (#4843)
Bumps
[gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action)
from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gradle/wrapper-validation-action/releases">gradle/wrapper-validation-action's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update various NPM dependencies</li>
<li>Update wrapper checksums to include Gradle 8.7</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/wrapper-validation-action/compare/v2.1.2...v2.1.3">https://github.com/gradle/wrapper-validation-action/compare/v2.1.2...v2.1.3</a></p>
<h2>v2.1.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update various NPM dependencies</li>
<li>Update wrapper checksums</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/wrapper-validation-action/compare/v2.1.1...v2.1.2">https://github.com/gradle/wrapper-validation-action/compare/v2.1.1...v2.1.2</a></p>
<h2>v2.1.1</h2>
<h2>Changelog</h2>
<ul>
<li>[FIX] Add hardcoded checksum for Gradle 7.6.4</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gradle/wrapper-validation-action/compare/v2...v2.1.1">https://github.com/gradle/wrapper-validation-action/compare/v2...v2.1.1</a></p>
<h2>v2.1.0</h2>
<p>This release should vastly reduce the number of network requests made
by the <code>wrapper-validation-action</code>, by hardcoding the
checksums of all known Gradle wrapper jars at time of release. With this
improvement, a number of long-standing issues should be addressed (<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/164">#164</a>,
<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/162">#162</a>,
<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/57">#57</a>).</p>
<p>The action should now only make network requests to validate the
checksums of an unknown <code>gradle-wrapper.jar</code>. This can happen
if:</p>
<ul>
<li>The Gradle version was published after this action was released</li>
<li>The <code>gradle-wrapper.jar</code> is truly invalid</li>
</ul>
<h2>Changelog</h2>
<ul>
<li>[NEW] Hardcode list of known checksums to avoid network requests in
most cases (<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/161">#161</a>)</li>
</ul>
<p>Huge thanks to <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> for
contributing this long-awaited improvement.</p>
<h2>v2.0.1</h2>
<p>This patch release fixes error reporting when failing to retrieve the
checksums from services.gradle.org</p>
<ul>
<li>[FIX] After migration from v1 to v2 silently fails (<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/174">#174</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="216d1ad2b3"><code>216d1ad</code></a>
Bump to v3.3.2</li>
<li><a
href="5188e9b552"><code>5188e9b</code></a>
Bump to use v3.3.1</li>
<li><a
href="460a3ca55f"><code>460a3ca</code></a>
Delegate to 'gradle/actions/wrapper-validation' (<a
href="https://redirect.github.com/gradle/wrapper-validation-action/issues/200">#200</a>)</li>
<li>See full diff in <a
href="https://github.com/gradle/wrapper-validation-action/compare/v2...v3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gradle/wrapper-validation-action&package-manager=github_actions&previous-version=2&new-version=3)](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:04:27 +00:00
dependabot[bot]
283928d2f0 build(deps): Bump lycheeverse/lychee-action from 1.9.3 to 1.10.0 (#4842)
Bumps
[lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action)
from 1.9.3 to 1.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/lycheeverse/lychee-action/releases">lycheeverse/lychee-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.10.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>actions/checkout</code> to version <code>4</code> by <a
href="https://github.com/jacobdalamb"><code>@​jacobdalamb</code></a> in
<a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/224">lycheeverse/lychee-action#224</a></li>
<li>Bump lychee to 0.15.0 by <a
href="https://github.com/mre"><code>@​mre</code></a> in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/226">lycheeverse/lychee-action#226</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/jacobdalamb"><code>@​jacobdalamb</code></a>
made their first contribution in <a
href="https://redirect.github.com/lycheeverse/lychee-action/pull/224">lycheeverse/lychee-action#224</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/lycheeverse/lychee-action/compare/v1.9.3...v1.10.0">https://github.com/lycheeverse/lychee-action/compare/v1.9.3...v1.10.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2b973e86fc"><code>2b973e8</code></a>
Bump lychee to 0.15.0 (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/226">#226</a>)</li>
<li><a
href="1e92115388"><code>1e92115</code></a>
Update <code>actions/checkout</code> to version <code>4</code> (<a
href="https://redirect.github.com/lycheeverse/lychee-action/issues/224">#224</a>)</li>
<li>See full diff in <a
href="https://github.com/lycheeverse/lychee-action/compare/v1.9.3...v1.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lycheeverse/lychee-action&package-manager=github_actions&previous-version=1.9.3&new-version=1.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-05-01 14:03:07 +00:00
Jamil
4dc656c90a chore(ci): bump versions (#4840) 2024-04-30 16:31:20 -07:00
Andrew Dryga
7479f87b96 Use gcloud storage cp instead of gsutil 2024-04-30 16:16:52 -06:00
Andrew Dryga
ea71b250e5 Comment out gsutil changes to unblock release 2024-04-30 15:55:14 -06:00
Andrew Dryga
404b756d0e Export gsutil creds 2024-04-30 15:50:12 -06:00
Andrew Dryga
993069406a Add gs:// to bucket path 2024-04-30 15:44:31 -06:00
Andrew Dryga
9277fba7fd Try to use gsutil command instead of GH Action 2024-04-30 15:37:01 -06:00
Andrew Dryga
3077464587 Try to use relative path in CI artifact upload config 2024-04-30 15:31:01 -06:00
Andrew Dryga
9b1fc32d5d Fix typo in CI config 2024-04-30 15:17:18 -06:00
Andrew Dryga
8d573627f9 Try to push release artifacts to GCS 2024-04-30 15:12:04 -06:00
Jason Elie Bou Kheir
4baf0cb93b test(android): add instrumentation test github action (#4178)
Fixes #2311
2024-04-30 17:05:46 +00:00
Jamil
b79ce96bc6 chore(website): Bump versions (#4821)
- Bump versions to point to latest binaries
- Stage versions for next release
2024-04-29 22:06:00 +00:00
Reactor Scram
d0155bc786 fix(windows-client): package name should be "Firezone" not "firezone-client-gui" (#4814)
Closes #4813 

After PR, the installer, UAC dialog, and notifications all say
"Firezone" again

<img width="494" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/69a4fe0b-78fa-4945-b17f-625e68ac09db">
2024-04-29 17:34:25 +00:00
Reactor Scram
b93e8870c3 refactor(linux-client): package systemd unit for IPC service (#4752)
This aligns some of the internal names with #4531, but it shouldn't
break the externally-visible things like package names or permalinks.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-04-26 23:07:02 +00:00
Jamil
af066dcb97 ci: use consistent binary dest path naming (#4772) 2024-04-24 20:11:00 +00:00
Jamil
5dc52edecc ci: Bump versions and fix release overwrites (#4769) 2024-04-24 11:43:19 -07:00
Reactor Scram
e1eda7977c refactor: Make published artifact names consistent and use permalinks (#4746)
```[tasklist]
- [x] Update website
- [x] Update blog entry with old link
- [ ] ~~Replace Github URL in GUI Client updater with our own links~~
- [ ] Wait for CI to go green
```

Refs #4531 

This proposes a unified scheme for deb and MSI packages, and moves
Windows to that scheme.

This breaks compatibility. Existing Clients won't recognize the new
asset names once this is merged, so they won't show the "Firezone 1.0.0
is available" pop-up.

---------

Co-authored-by: Jamil Bou Kheir <jamilbk@users.noreply.github.com>
2024-04-24 09:42:12 -07:00
Jamil
83340b9252 ci: Don't run browser tests on release images (#4722)
Fixes https://github.com/firezone/firezone/actions/runs/8763390111
2024-04-20 00:37:12 -07: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
Andrew Dryga
1b60c49f32 Also exclude acceptance tests 2024-04-19 12:23:41 -06:00
Andrew Dryga
5b153f9ba4 Provider a way to disable flaky Elixir tests on CI 2024-04-19 11:27:31 -06:00
Thomas Eizinger
69644054ce ci: remove setting of unused env variable (#4710) 2024-04-19 14:11:58 +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
Jamil
f024570c6c ci(fix): replace more invalid ref chars (#4687)
https://github.com/firezone/firezone/actions/runs/8741173474/job/23986580117

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-18 20:56:04 +00:00
Reactor Scram
68016a8a56 test(linux-client): disable failing test (#4689) 2024-04-18 19:40:06 +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
6da6fc8569 test(linux-client): temporarily disable failing linux-group integration test (#4670)
Refs #4669. That issue will be for fixing and re-enabling the test.

This is only needed for Linux IPC which isn't in production yet, so it's
easier to disable first and debug second
2024-04-17 23:48:22 +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
Jamil
9415a64900 chore(ci): build docker dev images with main (#4643)
Fixes broken pulling of images for dev
2024-04-16 20:29:11 +00:00
Andrew Dryga
e60fd1c665 Add global concurrency group to production deployments 2024-04-16 11:59:28 -06:00
Andrew Dryga
a6f32aa769 chore(devops): Fix GH overriding main branch statuses (#4639) 2024-04-16 10:41:13 -06:00
Jamil
9a317247a1 chore(ci): .env not available in with shared workflow context (#4631)
Le sigh
2024-04-16 00:01:17 +00:00
Jamil
42385fd565 ci: Add tag name to build-dev-images (#4629)
dev images don't uses releases and shouldn't rely on release-drafter,
instead following the `VERSION` that's set in CI.

Fixes https://github.com/firezone/firezone/actions/runs/8696082974
2024-04-15 22:10:54 +00:00
Jamil
254fe6fbbc ci: Only build debug images for linux/amd64 (#4612)
refs #4602 

- Removes `debug` stage building of `arm` and `arm64` binaries and
images (PRs only) -- these just get thrown away since we only test in CI
with `amd64`
- Removes `perf` builds for snownet-tests and http-test-server
- `base-base*` jobs are expected to fail since these changes haven't hit
`main` yet
- 
This changes our required checks, so after approval I'll need to update
those.
2024-04-14 15:10:54 +00:00
Jamil
c15f4f0868 ci: Enable client compatibility tests (#4610)
Meant to do this sooner.
2024-04-13 20:55:13 +00:00
Jamil
e9020ddd73 fix(ci): Override release_drafter commitish since we run on PRs now (#4608)
Fixes
https://firezonehq.slack.com/archives/C067DSY7TFX/p1712964715027229
2024-04-12 18:06:14 -07:00
Reactor Scram
8e642e86d8 refactor(perf-tests): add prefixes 'base' and 'head' (#4598)
This makes it easier to tell them apart, which had been confusing me
while working on #4578

<img width="304" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/5c9b3505-45ca-490f-9f7a-00e1a5c2eb30">
2024-04-12 21:35:33 +00:00
Jamil
89e05b0fd6 fix(ci): autolabeler to fix changelog drafting (#4591)
Fixes the autolabeler so that changelog generation and edit process is
much less time-consuming

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
2024-04-12 21:23:53 +00:00
Reactor Scram
c01c3c1dd8 test(integration): remove redundant integration-test- prefix (#4601)
They all have the same prefix anyway, and it uses up real estate in the
CI page

**After**
<img width="311" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/8028f9bf-5c13-4170-9e01-06bfd393751c">

**Before**
<img width="292" alt="image"
src="https://github.com/firezone/firezone/assets/13400041/8cabf67e-6be2-4719-b06f-4a76cf5c8111">
2024-04-12 18:15:11 +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
Jamil
0e9dea9d5e test(ci): Remove e2e false start (#4580)
As we've learned more about how we can test for increased coverage and
certain failure scenarios, I think continuing down this path is a losing
battle.

Apple is the only platform we can't theoretically test in GitHub
actions, and we may be able to accomplish that with #4375. With #4506 in
progress, I think we can get decent coverage with a mix of CI
integration tests and portal-stubbed clients in CI.

If we can stub out the control plane I/O we can test clients in CI.
2024-04-11 13:32:19 +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