Use git dependency for rend3 #663
pr.yml
on: pull_request
hearth-test
1m 26s
hearth-clippy
48s
hearth-rustfmt
12s
kindling-build
34s
kindling-clippy
24s
kindling-rustfmt
11s
Matrix: hearth-build
Annotations
18 errors and 42 warnings
mismatched types:
plugins/terminal/src/draw.rs#L253
error[E0308]: mismatched types
--> plugins/terminal/src/draw.rs:253:55
|
253 | let grid_shader = device.create_shader_module(&include_wgsl!("grid.wgsl"));
| -------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ShaderModuleDescriptor<'_>`, found `&ShaderModuleDescriptor<'_>`
| |
| arguments to this method are incorrect
|
note: method defined here
--> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.18.0/src/lib.rs:2400:12
|
2400 | pub fn create_shader_module(&self, desc: ShaderModuleDescriptor) -> ShaderModule {
| ^^^^^^^^^^^^^^^^^^^^
help: consider removing the borrow
|
253 - let grid_shader = device.create_shader_module(&include_wgsl!("grid.wgsl"));
253 + let grid_shader = device.create_shader_module(include_wgsl!("grid.wgsl"));
|
|
mismatched types:
plugins/terminal/src/draw.rs#L289
error[E0308]: mismatched types
--> plugins/terminal/src/draw.rs:289:28
|
289 | targets: &[ColorTargetState {
| ____________________________^
290 | | format,
291 | | blend: Some(BlendState::ALPHA_BLENDING),
292 | | write_mask: ColorWrites::COLOR,
293 | | }],
| |_________________^ expected `Option<ColorTargetState>`, found `ColorTargetState`
|
= note: expected enum `std::option::Option<hearth_rend3::wgpu::ColorTargetState>`
found struct `hearth_rend3::wgpu::ColorTargetState`
help: try wrapping the expression in `Some`
|
289 ~ targets: &[Some(ColorTargetState {
290 | format,
291 | blend: Some(BlendState::ALPHA_BLENDING),
292 | write_mask: ColorWrites::COLOR,
293 ~ })],
|
|
missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<std::option::Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`:
plugins/terminal/src/draw.rs#L448
error[E0063]: missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<std::option::Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`
--> plugins/terminal/src/draw.rs:448:61
|
448 | let grid_texture = pipelines.device.create_texture(&TextureDescriptor {
| ^^^^^^^^^^^^^^^^^ missing `view_formats`
|
mismatched types:
plugins/terminal/src/draw.rs#L253
error[E0308]: mismatched types
--> plugins/terminal/src/draw.rs:253:55
|
253 | let grid_shader = device.create_shader_module(&include_wgsl!("grid.wgsl"));
| -------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ShaderModuleDescriptor<'_>`, found `&ShaderModuleDescriptor<'_>`
| |
| arguments to this method are incorrect
|
note: method defined here
--> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.18.0/src/lib.rs:2400:12
|
2400 | pub fn create_shader_module(&self, desc: ShaderModuleDescriptor) -> ShaderModule {
| ^^^^^^^^^^^^^^^^^^^^
help: consider removing the borrow
|
253 - let grid_shader = device.create_shader_module(&include_wgsl!("grid.wgsl"));
253 + let grid_shader = device.create_shader_module(include_wgsl!("grid.wgsl"));
|
|
mismatched types:
plugins/terminal/src/draw.rs#L289
error[E0308]: mismatched types
--> plugins/terminal/src/draw.rs:289:28
|
289 | targets: &[ColorTargetState {
| ____________________________^
290 | | format,
291 | | blend: Some(BlendState::ALPHA_BLENDING),
292 | | write_mask: ColorWrites::COLOR,
293 | | }],
| |_________________^ expected `Option<ColorTargetState>`, found `ColorTargetState`
|
= note: expected enum `std::option::Option<hearth_rend3::wgpu::ColorTargetState>`
found struct `hearth_rend3::wgpu::ColorTargetState`
help: try wrapping the expression in `Some`
|
289 ~ targets: &[Some(ColorTargetState {
290 | format,
291 | blend: Some(BlendState::ALPHA_BLENDING),
292 | write_mask: ColorWrites::COLOR,
293 ~ })],
|
|
missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<std::option::Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`:
plugins/terminal/src/draw.rs#L448
error[E0063]: missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<std::option::Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`
--> plugins/terminal/src/draw.rs:448:61
|
448 | let grid_texture = pipelines.device.create_texture(&TextureDescriptor {
| ^^^^^^^^^^^^^^^^^ missing `view_formats`
|
hearth-clippy
Clippy has exited with exit code 101
|
hearth-test:
plugins/terminal/src/draw.rs#L253
mismatched types
|
hearth-test:
plugins/terminal/src/draw.rs#L289
mismatched types
|
hearth-test:
plugins/terminal/src/draw.rs#L448
missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`
|
hearth-test
could not compile `hearth-terminal` (lib) due to 3 previous errors
|
hearth-test
The process '/home/runner/.cargo/bin/cargo' failed with exit code 101
|
hearth-build (ubuntu-latest):
plugins/terminal/src/draw.rs#L253
mismatched types
|
hearth-build (ubuntu-latest):
plugins/terminal/src/draw.rs#L289
mismatched types
|
hearth-build (ubuntu-latest):
plugins/terminal/src/draw.rs#L448
missing field `view_formats` in initializer of `wgpu_types::TextureDescriptor<Option<&str>, &[hearth_rend3::wgpu::TextureFormat]>`
|
hearth-build (ubuntu-latest)
could not compile `hearth-terminal` (lib) due to 3 previous errors
|
hearth-build (ubuntu-latest)
The process '/home/runner/.cargo/bin/cargo' failed with exit code 101
|
hearth-build (macos-latest)
The operation was canceled.
|
kindling-rustfmt
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions-rs/toolchain@v1, LoliGothick/rustfmt-check@master. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
kindling-rustfmt
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
kindling-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
kindling-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
kindling-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
kindling-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
hearth-rustfmt
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions-rs/toolchain@v1, LoliGothick/rustfmt-check@master. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
hearth-rustfmt
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
hearth-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
hearth-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
hearth-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
hearth-rustfmt
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
kindling-clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: Swatinem/rust-cache@v2.2.0. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
accessing first element with `resp.1.get(0)`:
kindling/host/src/canvas.rs#L49
warning: accessing first element with `resp.1.get(0)`
--> kindling/host/src/canvas.rs:49:18
|
49 | cap: resp.1.get(0).unwrap().clone(),
| ^^^^^^^^^^^^^ help: try: `resp.1.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
= note: `#[warn(clippy::get_first)]` on by default
|
accessing first element with `resp.1.get(0)`:
kindling/host/src/canvas.rs#L49
warning: accessing first element with `resp.1.get(0)`
--> kindling/host/src/canvas.rs:49:18
|
49 | cap: resp.1.get(0).unwrap().clone(),
| ^^^^^^^^^^^^^ help: try: `resp.1.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
= note: `#[warn(clippy::get_first)]` on by default
|
accessing first element with `DEBUG_DRAW_FACTORY
.request((), &[])
.1.get(0)`:
kindling/host/src/debug_draw.rs#L51
warning: accessing first element with `DEBUG_DRAW_FACTORY
.request((), &[])
.1.get(0)`
--> kindling/host/src/debug_draw.rs:51:18
|
51 | cap: DEBUG_DRAW_FACTORY
| __________________^
52 | | .request((), &[])
53 | | .1
54 | | .get(0)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
help: try
|
51 ~ cap: DEBUG_DRAW_FACTORY
52 + .request((), &[])
53 + .1.first()
|
|
accessing first element with `DEBUG_DRAW_FACTORY
.request((), &[])
.1.get(0)`:
kindling/host/src/debug_draw.rs#L51
warning: accessing first element with `DEBUG_DRAW_FACTORY
.request((), &[])
.1.get(0)`
--> kindling/host/src/debug_draw.rs:51:18
|
51 | cap: DEBUG_DRAW_FACTORY
| __________________^
52 | | .request((), &[])
53 | | .1
54 | | .get(0)
| |_______________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
help: try
|
51 ~ cap: DEBUG_DRAW_FACTORY
52 + .request((), &[])
53 + .1.first()
|
|
accessing first element with `resp.1.get(0)`:
kindling/host/src/terminal.rs#L47
warning: accessing first element with `resp.1.get(0)`
--> kindling/host/src/terminal.rs:47:18
|
47 | cap: resp.1.get(0).unwrap().clone(),
| ^^^^^^^^^^^^^ help: try: `resp.1.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
accessing first element with `resp.1.get(0)`:
kindling/host/src/terminal.rs#L47
warning: accessing first element with `resp.1.get(0)`
--> kindling/host/src/terminal.rs:47:18
|
47 | cap: resp.1.get(0).unwrap().clone(),
| ^^^^^^^^^^^^^ help: try: `resp.1.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
accessing first element with `resp.get(0)`:
kindling/host/src/time.rs#L56
warning: accessing first element with `resp.get(0)`
--> kindling/host/src/time.rs:56:35
|
56 | Self(RequestResponse::new(resp.get(0).unwrap().clone()))
| ^^^^^^^^^^^ help: try: `resp.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
accessing first element with `resp.get(0)`:
kindling/host/src/time.rs#L77
warning: accessing first element with `resp.get(0)`
--> kindling/host/src/time.rs:77:35
|
77 | Self(RequestResponse::new(resp.get(0).unwrap().clone()))
| ^^^^^^^^^^^ help: try: `resp.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
accessing first element with `resp.get(0)`:
kindling/host/src/time.rs#L56
warning: accessing first element with `resp.get(0)`
--> kindling/host/src/time.rs:56:35
|
56 | Self(RequestResponse::new(resp.get(0).unwrap().clone()))
| ^^^^^^^^^^^ help: try: `resp.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
accessing first element with `resp.get(0)`:
kindling/host/src/time.rs#L77
warning: accessing first element with `resp.get(0)`
--> kindling/host/src/time.rs:77:35
|
77 | Self(RequestResponse::new(resp.get(0).unwrap().clone()))
| ^^^^^^^^^^^ help: try: `resp.first()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first
|
kindling-build
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, Swatinem/rust-cache@v2.2.0, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
kindling-build
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
hearth-clippy
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: Swatinem/rust-cache@v2.2.0. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
returning the result of a `let` binding from a block:
core/runtime/src/connection.rs#L89
warning: returning the result of a `let` binding from a block
--> core/runtime/src/connection.rs:89:9
|
87 | let conn = Arc::new(conn);
| -------------------------- unnecessary `let` binding
88 |
89 | conn
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
= note: `#[warn(clippy::let_and_return)]` on by default
help: return the expression directly
|
87 ~
88 |
89 ~ Arc::new(conn)
|
|
usage of `contains_key` followed by `insert` on a `HashMap`:
core/runtime/src/connection.rs#L100
warning: usage of `contains_key` followed by `insert` on a `HashMap`
--> core/runtime/src/connection.rs:100:13
|
100 | / if exports.contains_key(&id) {
101 | | // cap is already exported, so drop this reference
102 | | table.dec_ref(handle).unwrap();
103 | | } else {
... |
112 | | self.send_local_op(op);
113 | | }
| |_____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry
= note: `#[warn(clippy::map_entry)]` on by default
help: try
|
100 ~ if let std::collections::hash_map::Entry::Vacant(e) = exports.entry(id) {
101 + // cap needs to be exported
102 + let cap = table.wrap_handle(handle).unwrap();
103 + let perms = cap.get_permissions().bits();
104 + let perms = hearth_schema::Permissions::from_bits_retain(perms);
105 + let op = LocalCapOperation::DeclareCap { id, perms };
106 + let revoked = false;
107 + let export = Export { cap, revoked };
108 + e.insert(export);
109 + self.send_local_op(op);
110 + } else {
111 + // cap is already exported, so drop this reference
112 + table.dec_ref(handle).unwrap();
113 + }
|
|
returning the result of a `let` binding from a block:
core/runtime/src/connection.rs#L89
warning: returning the result of a `let` binding from a block
--> core/runtime/src/connection.rs:89:9
|
87 | let conn = Arc::new(conn);
| -------------------------- unnecessary `let` binding
88 |
89 | conn
| ^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
= note: `#[warn(clippy::let_and_return)]` on by default
help: return the expression directly
|
87 ~
88 |
89 ~ Arc::new(conn)
|
|
usage of `contains_key` followed by `insert` on a `HashMap`:
core/runtime/src/connection.rs#L100
warning: usage of `contains_key` followed by `insert` on a `HashMap`
--> core/runtime/src/connection.rs:100:13
|
100 | / if exports.contains_key(&id) {
101 | | // cap is already exported, so drop this reference
102 | | table.dec_ref(handle).unwrap();
103 | | } else {
... |
112 | | self.send_local_op(op);
113 | | }
| |_____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry
= note: `#[warn(clippy::map_entry)]` on by default
help: try
|
100 ~ if let std::collections::hash_map::Entry::Vacant(e) = exports.entry(id) {
101 + // cap needs to be exported
102 + let cap = table.wrap_handle(handle).unwrap();
103 + let perms = cap.get_permissions().bits();
104 + let perms = hearth_schema::Permissions::from_bits_retain(perms);
105 + let op = LocalCapOperation::DeclareCap { id, perms };
106 + let revoked = false;
107 + let export = Export { cap, revoked };
108 + e.insert(export);
109 + self.send_local_op(op);
110 + } else {
111 + // cap is already exported, so drop this reference
112 + table.dec_ref(handle).unwrap();
113 + }
|
|
very complex type used. Consider factoring parts into `type` definitions:
core/runtime/src/runtime.rs#L63
warning: very complex type used. Consider factoring parts into `type` definitions
--> core/runtime/src/runtime.rs:63:15
|
63 | finalize: Box<dyn FnOnce(Box<dyn Any>, &mut RuntimeBuilder) + Send>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
you should consider adding a `Default` implementation for `RuntimeBuilder`:
core/runtime/src/runtime.rs#L84
warning: you should consider adding a `Default` implementation for `RuntimeBuilder`
--> core/runtime/src/runtime.rs:84:5
|
84 | / pub fn new() -> Self {
85 | | let lump_store = Arc::new(LumpStoreImpl::new());
86 | | let asset_store = AssetStore::new(lump_store.clone());
87 | | let (service_start_tx, service_start_rx) = unbounded_channel();
... |
105 | | }
106 | | }
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
= note: `#[warn(clippy::new_without_default)]` on by default
help: try adding this
|
82 + impl Default for RuntimeBuilder {
83 + fn default() -> Self {
84 + Self::new()
85 + }
86 + }
|
|
very complex type used. Consider factoring parts into `type` definitions:
core/runtime/src/runtime.rs#L63
warning: very complex type used. Consider factoring parts into `type` definitions
--> core/runtime/src/runtime.rs:63:15
|
63 | finalize: Box<dyn FnOnce(Box<dyn Any>, &mut RuntimeBuilder) + Send>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
= note: `#[warn(clippy::type_complexity)]` on by default
|
you should consider adding a `Default` implementation for `RuntimeBuilder`:
core/runtime/src/runtime.rs#L84
warning: you should consider adding a `Default` implementation for `RuntimeBuilder`
--> core/runtime/src/runtime.rs:84:5
|
84 | / pub fn new() -> Self {
85 | | let lump_store = Arc::new(LumpStoreImpl::new());
86 | | let asset_store = AssetStore::new(lump_store.clone());
87 | | let (service_start_tx, service_start_rx) = unbounded_channel();
... |
105 | | }
106 | | }
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default
= note: `#[warn(clippy::new_without_default)]` on by default
help: try adding this
|
82 + impl Default for RuntimeBuilder {
83 + fn default() -> Self {
84 + Self::new()
85 + }
86 + }
|
|
use of a fallible conversion when an infallible one could be used:
core/ipc/src/lib.rs#L35
warning: use of a fallible conversion when an infallible one could be used
--> core/ipc/src/lib.rs:35:28
|
35 | match path.clone().try_into() {
| ^^^^^^^^ help: use: `into`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
= note: `#[warn(clippy::unnecessary_fallible_conversions)]` on by default
|
use of a fallible conversion when an infallible one could be used:
core/ipc/src/lib.rs#L44
warning: use of a fallible conversion when an infallible one could be used
--> core/ipc/src/lib.rs:44:15
|
44 | match TryInto::<PathBuf>::try_into(path.clone()) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `Into::into`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fallible_conversions
|
hearth-test
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, Swatinem/rust-cache@v2.2.0, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
hearth-test
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
hearth-build (ubuntu-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, Swatinem/rust-cache@v2.2.0, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
hearth-build (ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
hearth-build (macos-latest)
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3, Swatinem/rust-cache@v2.2.0, actions-rs/cargo@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|
hearth-build (macos-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/cargo@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|