Commit Graph

58 Commits

Author SHA1 Message Date
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
Thomas Eizinger
04476880e7 ci: only set up runtime tauri deps for smoke tests (#5632)
Setting up Tauri's runtime dependencies takes about a minute and is
unnecessary for the Rust unit tests. The Rust Windows unit tests jobs
are amongst the slowest and thus impact the overall CI runtime.

See
https://github.com/firezone/firezone/actions/runs/9719218798/job/26828616349
for a recent run on `main`.

---------

Signed-off-by: Thomas Eizinger <thomas@eizinger.io>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-06-29 05:35:11 +00:00
Thomas Eizinger
839292b1e3 ci: use sccache for building Tauri clients (#5617)
Using sccache results in a more efficient cache usage. GitHub's built-in
cache appears to grow over time and takes ~3minutes to download for the
Windows Tauri builds where it is ~2GB large.

Whilst researching bad performance on Windows runners in general, I came
across the hint to disable Windows defender which appears to slow things
down massively in the case of sccache which performs many small network
downloads and file writes.

This PR harmonizes our cache usage and prefers sccache over GitHub's
cache for everything apart from `cross` builds. The runtimes are either
roughly the same or noticeably better. Overally, the GUI smoke tests are
usually among the last ones to finish, meaning these changes should have
an overall net-positive impact on CI time.


|[`main`](https://github.com/firezone/firezone/actions/runs/9707704927)|[`head`](https://github.com/firezone/firezone/actions/runs/9709368060)|
|---|---|
|![Screenshot from 2024-06-28
17-55-14](https://github.com/firezone/firezone/assets/5486389/63433f24-d6de-4651-8bd8-ed1eb4b5b445)|![Screenshot
from 2024-06-28
17-59-33](https://github.com/firezone/firezone/assets/5486389/b82dd643-dd48-4c7f-9322-6bd45ab0fa70)|
|![Screenshot from 2024-06-28
17-55-17](https://github.com/firezone/firezone/assets/5486389/bc06fdb7-744a-4232-8e4f-c9bd7fd3c278)|![Screenshot
from 2024-06-28
17-59-39](https://github.com/firezone/firezone/assets/5486389/0b0b5207-7d77-4ed4-94d9-1306878e552a)|
|![Screenshot from 2024-06-28
17-55-21](https://github.com/firezone/firezone/assets/5486389/a2187475-8678-4c6b-afef-a96575943c98)|![Screenshot
from 2024-06-28
17-59-44](https://github.com/firezone/firezone/assets/5486389/90e9d335-536e-472a-846c-7ae0edf336fc)|
|![Screenshot from 2024-06-28
17-55-28](https://github.com/firezone/firezone/assets/5486389/a239f4f9-8c3b-4742-8b20-22e903082310)|![Screenshot
from 2024-06-28
17-59-50](https://github.com/firezone/firezone/assets/5486389/be718857-e217-464a-b4e2-515e5ad4c48c)|
|![Screenshot from 2024-06-28
17-55-33](https://github.com/firezone/firezone/assets/5486389/25b2ff75-c5d2-46f0-ab7e-702f2202e3c7)|![Screenshot
from 2024-06-28
17-59-55](https://github.com/firezone/firezone/assets/5486389/7e1ca3a8-dabc-4501-99bc-ff7993886e8f)|
|![Screenshot from 2024-06-28
17-55-37](https://github.com/firezone/firezone/assets/5486389/121a943d-db08-484a-8450-a0b8ca35cd10)|![Screenshot
from 2024-06-28
18-01-51](https://github.com/firezone/firezone/assets/5486389/d1cc137f-0898-4fdb-9798-e473195346a8)|
2024-06-28 22:28:21 +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
Thomas Eizinger
29d0c748e3 ci: make output of cargo test smaller (#5219)
When the `tunnel_test` fails, it generates a lot of output because it
keeps printing the backtrace over and over. This makes it difficult to
access the input seed to the test. Copying this seed into a local
environment is the first step in debugging this, at which point the
backtrace can be enabled locally.

We also disable the `verbose: 1` config option. Users can always set
that using the `PROPTEST_VERBOSE` env variable.
2024-06-05 21:42:29 +00:00
Thomas Eizinger
2cedb8907d ci(rust): compile tests with optimistions (#5153)
With an increased number of tests that make use of `proptest`, executing
`cargo test` (almost 6 minutes on `main` currently:
https://github.com/firezone/firezone/actions/runs/9278428694/job/25529425068#step:5:1407).
By compiling them with optimisations, we can drastically cut down the
execution time with only little penality in compilation speed as those
should be cached in CI.
2024-05-29 02:02:25 +00:00
Thomas Eizinger
92676f0f53 test(connlib): simulate IO in state machine tests (#4728)
This is similar to #4097 and #4585 but for the entire `ClientState` and
`GatewayState`. We also do it in the context of a property-based test
with the vision that we can deterministically explore a large space of
state transitions and see where our main property breaks: Being able to
send an ICMP packet from the client to the gateway.

In other words, we now correctly pass all the `Transmit`s back and forth
between the components as if they would receive it from the network. Due
to the nature of property-based tests, this already exercises a very
large input space. For example, if the client does not have an IPv6
socket and the gateway doesn't have an IPv4 socket, this test already
checks whether we then correctly fall back to using a relay (because the
allocation we make on the relay is the only network path where the STUN
requests pass through).

What this does not (yet) do is set up a proper network topology. The
`dispatch_transmit` function will happily "route" a `Transmit` from e.g.
the client to the gateway even if they are in different subnets. In
other words, these tests assume that the actual network itself works and
we can exchange UDP packets between the components.

For now, we only send ICMPs to CIDR resources. As a next step, we can
extend this to DNS resources by sending DNS queries for our DNS
resources and then sending an ICMP to the resolved IP.
2024-05-22 23:10:58 +00:00
Reactor Scram
7bf10035be ci(windows): time out the WebView2 install after 5 minutes (#4981)
It typically takes about 1 minute to run in CI. We don't have any leads
on fixing this issue, and it may be a regression in a recent release of
WebView2. https://github.com/firezone/firezone/pull/4935
2024-05-13 22:42:07 +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
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
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
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
c24a291956 chore(ci): scope cache by arch too (#4512)
https://github.com/firezone/firezone/actions/runs/8558739208/job/23453931061
2024-04-04 18:07:43 +00:00
Jamil
a58dd99e9f chore(ci): Scope GH rust cache per os type (#4504)
I suspect this is a cache issue:


https://github.com/firezone/firezone/actions/runs/8549331928/job/23424473070

---------

Signed-off-by: Jamil <jamilbk@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-04-04 16:47:51 +00:00
Thomas Eizinger
97e6a92e39 chore(rust): remove unused dependencies (#4475)
These were all found by `cargo-udeps`.

Resolves: #4403.
2024-04-03 14:11:02 +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
Reactor Scram
6aec8ce287 test(firezone-tunnel): create a tunnel device in unit tests during CI (#4254)
This catches two of the mutants, according to `cargo-mutants`.

~~Unfortunately since `cargo test` runs in one process, it's
all-or-nothing for sudo, this will run all unit tests as sudo.~~
(This explanation is not exactly correct, `cargo test` does run _a_
subprocess, but still, there is no way to request sudo or non-sudo
runners for specific tests, since it's just an environment variable, and
since many tests run in parallel in different threads of the same
process.)

Here it is passing in Linux:
https://github.com/firezone/firezone/actions/runs/8382799272/job/22957555987#step:5:3160

And Windows:
https://github.com/firezone/firezone/actions/runs/8382799272/job/22957558003#step:5:1006

```[tasklist]
### Before merging
- [x] Try `#[ignore]` attribute
- [x] Fail gracefully if `sudo` isn't available
```
2024-03-28 17:03:32 +00:00
Reactor Scram
504ff3ffca ci(tauri-client): try to enable smoke tests for Ubuntu 22.04 (#3770)
Closes #3699 if successful

Ref #3972 

I don't understand why it started working. There's at least 3
possibilities:
- Some unrelated change in the last few weeks fixed it (Maybe bumping
Tauri to 1.6.1? https://github.com/firezone/firezone/pull/3881)
- It was a bug in the Github CI runner image that they fixed
- It's an awful race condition and adding `tracing::debug!` fixed it

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-03-19 15:41:37 +00:00
Thomas Eizinger
a64c34112d ci: activate backtrace for Rust tests (#4137) 2024-03-14 20:21:14 +00:00
Jamil
6575e0ca26 chore(ci): Refactor CI to use prod images in staging and prevent accidental hotfix breakages (#4049)
- Runs release asset builds simultaneously with `deploy-staging`. Those
don't depend on each other.
- Prevents running some build workflows in CD because they're run
already in the PR and in the merge group, and the risk of semantic
conflict is negligible
- Run `release` assets in staging
- Adds `compatibility_tests`: **To successfully introduce a breaking
change in the control / data plane APIs, you must now "Merge as
Administrator"**
- Since `CI` is no longer run on `main`, caching needed to be refactored
to make sense again
- Since `CI` is no longer run on `main`, the Elixir
`migrations_and_seeds_test` had to be rewritten. This now tests
migrations using `git checkout` instead of importing `main`'s DB dump.
- Move tauri builds to its own workflow so we can trigger Linux and
Windows builds manually on an adhoc basis like we do for the Swift and
Kotlin builds
- Add a new `hotfix` workflow that will run `compatibility_tests` with
the latest published images
- Add `workflow_dispatch` to trigger `CD` manually for testing purposes
(cc @ReactorScram)


Refs #3995
2024-03-11 20:01:34 +00:00
Reactor Scram
7211e88338 feat(linux-client): generate firezone-id (device ID) automatically if it's not provided at launch (#3920)
Closes #3815 

Changes that are breaking (but these aren't in production so it should
be okay)

- Windows, renaming `device_id.json` to `firezone-id.json` to match the
rest of the code
- Linux GUI, storing the firezone-id under `/var/lib` instead of under
`$HOME`
- Linux GUI, bails out if not run with `sudo --preserve-env` by
detecting `$HOME == root` or `$USER != root`

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-03-08 16:13:59 +00:00
Jamil
b5303bdc46 chore(ci): remove redundant runs-on config (#3925) 2024-03-05 05:51:21 +00:00
Jamil
268e792f48 chore(ci): Use GH actions cache for Tauri builds (#3906)
Builds off #3905 and uses the GH actions cache for tauri builds in order
to get around the `crate-type` problem sccache has with Tauri apps.

Fixes #3456
2024-03-05 01:07:31 +00:00
Reactor Scram
ca95dcdf77 feat(gui-client): make all modules Linux-friendly (#3737)
Splits up platform-specific modules into `linux.rs` and `windows.rs`
submodules, or `imp` modules within the parent module, so that we can
compile all the platform-independent code (e.g. Tauri calls,
`run_controller`) for Linux.

This will show the Tauri GUI on Linux:


![image](https://github.com/firezone/firezone/assets/13400041/320a4b91-1a37-48dd-94b9-cc280cc09854)

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-02-28 22:09:56 +00:00
Gabi
03ea93d0bd fix(ci): phoenix channel tests not running (#3749)
Similar to #3747
2024-02-23 20:15:31 +00:00
Gabi
f26f202b4e fix(ci): run relay tests (#3747)
builds on top of #3746 since it is needed to pass
2024-02-23 18:26:11 +00:00
Reactor Scram
fd31152106 refactor(ci): enable Linux do-nothing GUI builds (but not tests) in CI/CD, extract scripts for that (#3735)
Builds a do-nothing `return 0` Linux client to make sure the CI/CD
scripts are set up and producing AppImage / deb bundles as expected.


![image](https://github.com/firezone/firezone/assets/13400041/7d2d8f02-adde-4b1b-89ec-02aaf112ac48)

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-02-23 17:57:39 +00:00
Reactor Scram
c09ba0889d refactor(ci): extract scripts for GUI client smoke tests (#3724)
(Waiting on #3721)
Ubuntu is headless by default and needs `xvfb` to run Tauri in CI, hence
the difference.

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-02-22 21:15:59 +00:00
Reactor Scram
4106419ef1 refactor: rename windows-client to gui-client (#3721)
This may cause conflicts with all my other PRs but it has to happen.

```[tasklist]
- [ ] Update test names in branch protection (I don't think I have perms for this)
```
2024-02-22 20:21:27 +00:00
Reactor Scram
bee2dabf4c refactor(ci): extract setup-tauri action and generalize Windows builds (#3702)
This prevents duplication for different Tauri jobs like building the
release packages vs testing a debug build with mock keyring.

```[tasklist]
- [ ] Fix branch protection rules for changed tests
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-02-22 01:59:47 +00:00
Gabi
3d3e737ba3 refactor(connlib): replace webrtc-rs with snownet (#3391)
Co-authored-by: Thomas Eizinger <thomas@eizinger.io>

Resolves: #3377.

---------

Co-authored-by: Thomas Eizinger <thomas@eizinger.io>
2024-02-20 06:56:31 +00:00
Reactor Scram
bd5b5d9c5f ci(windows): test crash handling as part of smoke test (#3624)
If this passes I'll use it to approve #3623
2024-02-13 17:12:57 +00:00
Reactor Scram
4c0b685978 chore(ci): update Node to 20 in the Windows CI jobs (#3611)
Fixes warnings for using pnpm for the Windows smoke test and release
build
2024-02-09 18:07:24 +00:00
Reactor Scram
ce79d020c1 ci(windows): add 'firezone' to the MSI names (#3610)
Since `windows-client-x64.msi` could be any other product.

I also split up the build steps similar to how the smoke test does.
2024-02-09 17:14:13 +00:00
Reactor Scram
eb10f257b0 ci(windows): fix warning about CONNLIB_LOG_UPLOAD_INTERVAL_SECS (#3606)
It was bugging me a little. Before:

![image](https://github.com/firezone/firezone/assets/13400041/bc0a03cc-ef47-4b68-b33c-f671eddc78e9)

After (with jq pretty-printing)

![image](https://github.com/firezone/firezone/assets/13400041/faf7ebac-0dc0-4e93-8349-653e57e6eeda)
2024-02-08 16:00:00 +00:00
Reactor Scram
fa30588536 ci(windows): run the Windows smoke test in CI (#3542)
Closes #3534 

I'm running it in another job in parallel. It doesn't work in release
mode for Windows reasons, and I'm not sure how to share it with the
`cargo test` jobs.

So the overall time for `ci.yml` is only 11 minutes, which seems
typical. However it is using up another CI runner unit to build the
whole Tauri app from scratch in debug mode.

```[tasklist]
- [x] Skip the WebView2 error dialog if we're in smoke-test mode
- [x] Research if there's any Github action to install WebView2 in the runner
```

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Gabi <gabrielalejandro7@gmail.com>
Co-authored-by: Jamil <jamilbk@users.noreply.github.com>
2024-02-05 21:54:22 +00:00
Reactor Scram
e35dd53649 ci(windows): Upload Windows debug symbols (#3467)
Closes #3450 

I was able to get stacktraces from a crash generated inside my VM. It
picked out the correct line in gui.rs where the crash was triggered.


![image](https://github.com/firezone/firezone/assets/13400041/1fc521a1-059c-489b-b9b8-506570a4df0f)


![image](https://github.com/firezone/firezone/assets/13400041/17e4bdd9-cd2a-477a-821a-ab23e61eadf7)
2024-02-01 01:36:10 +00:00
Jamil
355029f88f chore(ci): Bump sccache; remove IPC debug build (#3468)
Attempt #1 to speed up slow builds:

- kotlin
- tauri

refs #3456
2024-01-31 23:39:54 +00:00
Reactor Scram
966432da5b refactor(windows): remove IPC code which is now unused (#3469) 2024-01-31 23:34:46 +00:00
Jamil
2098060dcc feat(ci): Standardize matrix job names to prevent dupes, move jobs to macos-14 (#3447)
This should be faster than the Intel runners. Seems to be at least twice
as fast for uncached builds compared to `ubuntu-22.04`.

- [x] ~~Move elixir checks to `macos-14`~~ can't; Depends on `docker`
and `erlef/setup-beam`
- [x] Add macOS targets to rust checks
- [x] Move swift build to macos-14
- [x] Move kotlin build to macos-14
- [x] Name all jobs that are required for merge group to not depend on
job config
- [x] Update PR branch protection rules
2024-01-31 22:12:23 +00:00
Thomas Eizinger
6a33516460 feat(connection): rebrand to snownet (#3435)
`firezone-connection` was a working title that I never really quite
liked. Here is a proposal to rebrand it to `snownet`. That is a lot more
concise and derived from the fact that we are established a network of
connections using ICE.
2024-01-31 00:54:00 +00:00
Reactor Scram
b2b03744b0 fix(windows): Ensure production exes / MSIs don't show "-modified" Git versions (#3432)
Fixes #3384
2024-01-30 20:51:10 +00:00
Reactor Scram
2f2f1a65af ci(windows): call pnpm so the frontend gets built, closes #3381 (#3382)
Closes #3381
2024-01-24 18:18:20 +00:00
Thomas Eizinger
2cc68c067f deps: use usptream str0m (#3365)
All major upstream contributions to `str0m` have been merged, meaning we
can now discontinue the dependency on the fork.
2024-01-23 23:28:55 +00:00
Jamil
086f7a85c6 refactor(windows): Windows UI polish (#3338)
- Add Tailwind and Flowbite for consistent UI

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
Co-authored-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-23 17:07:25 +00:00
Reactor Scram
215883caec test(windows): multi-process test for IPC (#3310)
I tested this by temporarily putting panics in `test_ipc_manager` and
`test_ipc_worker`.
It looks like, if a process crashes, Windows will clean up its named
pipe, and the process waiting on the other side of the named pipe will
get an error.
This is good but it's not air-tight - ~~We could still have a situation
where a worker process locks up, and the main process crashes, and the
worker process then leaks.~~ #3311 will fix that

For that case I'll try this
https://stackoverflow.com/questions/53208/how-do-i-automatically-destroy-child-processes-in-windows

---------

Signed-off-by: Reactor Scram <ReactorScram@users.noreply.github.com>
2024-01-22 21:48:28 +00:00
Jamil
b1738bdd46 feat(ci): Add e2e test bed (#3135)
- [x] Launch control plane via docker compose
- [x] Ensure all clients build
2024-01-16 01:57:41 +00:00
Reactor Scram
de2d9c1ce9 ci(windows): add SHA256 hashes for artifacts (#3201)
Fulfills #2997 

cd.yml changes are always blind so it may break the draft release when
it goes into main. Just let me know.

I should probably just switch it to Bash so it's easier to test.
2024-01-12 21:32:50 +00:00
dependabot[bot]
7d8d172bef chore(deps): bump actions/upload-artifact from 3 to 4 (#3060)
Bumps
[actions/upload-artifact](https://github.com/actions/upload-artifact)
from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<p>The release of upload-artifact@v4 and download-artifact@v4 are major
changes to the backend architecture of Artifacts. They have numerous
performance and behavioral improvements.</p>
<p>For more information, see the <a
href="https://github.com/actions/toolkit/tree/main/packages/artifact"><code>@​actions/artifact</code></a>
documentation.</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/vmjoseph"><code>@​vmjoseph</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/464">actions/upload-artifact#464</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v3...v4.0.0">https://github.com/actions/upload-artifact/compare/v3...v4.0.0</a></p>
<h2>v3.1.3</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(github): remove trailing whitespaces by <a
href="https://github.com/ljmf00"><code>@​ljmf00</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/313">actions/upload-artifact#313</a></li>
<li>Bump <code>@​actions/artifact</code> version to v1.1.2 by <a
href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/436">actions/upload-artifact#436</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v3...v3.1.3">https://github.com/actions/upload-artifact/compare/v3...v3.1.3</a></p>
<h2>v3.1.2</h2>
<ul>
<li>Update all <code>@actions/*</code> NPM packages to their latest
versions- <a
href="https://redirect.github.com/actions/upload-artifact/issues/374">#374</a></li>
<li>Update all dev dependencies to their most recent versions - <a
href="https://redirect.github.com/actions/upload-artifact/issues/375">#375</a></li>
</ul>
<h2>v3.1.1</h2>
<ul>
<li>Update actions/core package to latest version to remove
<code>set-output</code> deprecation warning <a
href="https://redirect.github.com/actions/upload-artifact/issues/351">#351</a></li>
</ul>
<h2>v3.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​actions/artifact</code> to v1.1.0 (<a
href="https://redirect.github.com/actions/upload-artifact/pull/327">actions/upload-artifact#327</a>)
<ul>
<li>Adds checksum headers on artifact upload (<a
href="https://redirect.github.com/actions/toolkit/pull/1095">actions/toolkit#1095</a>)
(<a
href="https://redirect.github.com/actions/toolkit/pull/1063">actions/toolkit#1063</a>)</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c7d193f32e"><code>c7d193f</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/466">#466</a>
from actions/v4-beta</li>
<li><a
href="13131bb095"><code>13131bb</code></a>
licensed cache</li>
<li><a
href="4a6c273b98"><code>4a6c273</code></a>
Merge branch 'main' into v4-beta</li>
<li><a
href="f391bb91a3"><code>f391bb9</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/465">#465</a>
from actions/robherley/v4-documentation</li>
<li><a
href="9653d03c4b"><code>9653d03</code></a>
Apply suggestions from code review</li>
<li><a
href="875b630764"><code>875b630</code></a>
add limitations section</li>
<li><a
href="ecb21463e9"><code>ecb2146</code></a>
add compression example</li>
<li><a
href="5e7604f84a"><code>5e7604f</code></a>
trim some repeated info</li>
<li><a
href="d6437d0758"><code>d6437d0</code></a>
naming</li>
<li><a
href="1b56155703"><code>1b56155</code></a>
s/v4-beta/v4/g</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/upload-artifact/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&package-manager=github_actions&previous-version=3&new-version=4)](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-01-02 02:49:19 +00:00