From f45ea35475a0e446e585a0b6e9c52413e64308a4 Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Sat, 29 Mar 2025 15:42:43 -0700 Subject: [PATCH 01/12] wip(msgpack): handle Nil strings --- .github/workflows/test.yml | 10 ++++++---- msgpack/decode.go | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 299fb016..5ab8768e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,8 @@ on: push: branches: - main + # TODO: don't add this in the pr + - fix-tests pull_request: release: types: @@ -21,11 +23,11 @@ jobs: matrix: os: - ubuntu-22.04 # https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md - - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md - - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md + # - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md + # - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md go-version: - - 1.18.x - - 1.19.x + # - 1.18.x + # - 1.19.x - 1.20.x neovim-version: - v0.9.1 diff --git a/msgpack/decode.go b/msgpack/decode.go index b055dac2..e96cb716 100644 --- a/msgpack/decode.go +++ b/msgpack/decode.go @@ -321,6 +321,8 @@ func stringDecoder(ds *decodeState, v reflect.Value) { var x string switch ds.Type() { + case Nil: + x = "" case Binary, String: x = ds.String() default: From 96d7cca65a17c01516fcdfd55356794b81af0b36 Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Sat, 29 Mar 2025 16:03:34 -0700 Subject: [PATCH 02/12] fix(nvim): expect commands based on nvim version for nvim minor verion 9, no commands are returned for nvim minor version 10, three are returned currently, for nightly builds, four are returend --- .github/workflows/test.yml | 10 ++++------ nvim/api_test.go | 28 ++++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5ab8768e..299fb016 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,8 +4,6 @@ on: push: branches: - main - # TODO: don't add this in the pr - - fix-tests pull_request: release: types: @@ -23,11 +21,11 @@ jobs: matrix: os: - ubuntu-22.04 # https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md - # - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md - # - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md + - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md + - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md go-version: - # - 1.18.x - # - 1.19.x + - 1.18.x + - 1.19.x - 1.20.x neovim-version: - v0.9.1 diff --git a/nvim/api_test.go b/nvim/api_test.go index 81a2d861..3b1bbeab 100644 --- a/nvim/api_test.go +++ b/nvim/api_test.go @@ -2250,8 +2250,19 @@ func testCommand(v *Nvim) func(*testing.T) { if err != nil { t.Fatal(err) } - if len(cmds) > 0 { - t.Fatalf("expected 0 length but got %#v", cmds) + + var want int + switch nvimVersion.Minor { + case 9: + want = 0 + case 10: + want = 3 + default: + want = 4 + } + + if len(cmds) > want { + t.Fatalf("expected %d length but got %#v", want, cmds) } }) @@ -2266,8 +2277,17 @@ func testCommand(v *Nvim) func(*testing.T) { if err := b.Execute(); err != nil { t.Fatal(err) } - if len(cmds) > 0 { - t.Fatalf("expected 0 length but got %#v", cmds) + var want int + switch nvimVersion.Minor { + case 9: + want = 0 + case 10: + want = 3 + default: + want = 4 + } + if len(cmds) > want { + t.Fatalf("expected %d length but got %#v", want, cmds) } }) }) From 0ea75ee7eb244dad183c92acf7dedffeb96e992d Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Sun, 30 Mar 2025 11:21:00 -0700 Subject: [PATCH 03/12] msgpack: add string decode test for Nil --- msgpack/decode_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/msgpack/decode_test.go b/msgpack/decode_test.go index deaec364..a1abdcea 100644 --- a/msgpack/decode_test.go +++ b/msgpack/decode_test.go @@ -964,6 +964,16 @@ func Test_stringDecoder(t *testing.T) { want string wantErr bool }{ + "Nil": { + ds: &decodeState{ + Decoder: &Decoder{ + p: nil, + t: Nil, + }, + }, + want: string(""), + wantErr: false, + }, "Binary": { ds: &decodeState{ Decoder: &Decoder{ From d19c2121cf0ad4db378010a91bae570c10a1a86d Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Sun, 30 Mar 2025 14:27:13 -0700 Subject: [PATCH 04/12] refatctor(nvim): reduce exptectaion for keymappings neovim ships with default keybindings that may change per verison. the tests, prior to this change, included these default key mappings which make the tests fragile with each release. keeping a list of default commands should be outside the scope of this library. this change removes assertions against the entire set of keymaps returned by `nvim_get_keymap` and only verifies the desired keymap has been added and then removed. --- nvim/api_test.go | 404 +++++++---------------------------------------- 1 file changed, 57 insertions(+), 347 deletions(-) diff --git a/nvim/api_test.go b/nvim/api_test.go index 3b1bbeab..5c00ad2e 100644 --- a/nvim/api_test.go +++ b/nvim/api_test.go @@ -3035,195 +3035,49 @@ func testKey(v *Nvim) func(*testing.T) { skipBetweenVersion(t, "v0.7.0", "v0.8.0") mode := "n" - if err := v.SetKeyMap(mode, "y", "yy", make(map[string]bool)); err != nil { + original, err := v.KeyMap(mode) + if err != nil { t.Fatal(err) } - var wantMaps []*Mapping - wantMapsLen := 0 - switch nvimVersion.Minor { - case 6: - wantMaps = []*Mapping{ - { - LHS: "", - RHS: "nohlsearch|diffupdate", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - } - wantMapsLen = 2 - case 7: - wantMaps = []*Mapping{ - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - } - wantMapsLen = 2 - case 8: - wantMaps = []*Mapping{ - { - LHS: "&", - RHS: ":&&", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - } - wantMapsLen = 3 - default: - wantMaps = []*Mapping{ - { - LHS: "&", - RHS: ":&&", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - } - wantMapsLen = 3 + lhs := "y" + rhs := "yy" + if err := v.SetKeyMap(mode, lhs, rhs, make(map[string]bool)); err != nil { + t.Fatal(err) } - got, err := v.KeyMap(mode) + added, err := v.KeyMap(mode) if err != nil { t.Fatal(err) } - if !reflect.DeepEqual(got, wantMaps) { - for i, gotmap := range got { - t.Logf(" got[%d]: %#v", i, gotmap) - } - for i, wantmap := range wantMaps { - t.Logf("want[%d]: %#v", i, wantmap) + + if len(added) != len(original)+1 { + t.Fatalf("want %d but got %d", len(original)+1, len(added)) + } + + var keymap *Mapping + for _, m := range added { + if m.LHS == "y" { + keymap = m + break } - t.Fatalf("KeyMap(%s) = %#v, want: %#v", mode, got, wantMaps) } - if err := v.DeleteKeyMap(mode, "y"); err != nil { + if keymap.LHS != lhs && keymap.RHS != rhs { + t.Fatalf("want { LHS = %s, RHS = %s } but got { LHS = %s, RHS = %s }", lhs, rhs, keymap.LHS, keymap.RHS) + } + + if err := v.DeleteKeyMap(mode, lhs); err != nil { t.Fatal(err) } - got2, err := v.KeyMap(mode) + deleted, err := v.KeyMap(mode) if err != nil { t.Fatal(err) } - if len(got2) != wantMapsLen { - t.Fatalf("expected %d but got %#v", wantMapsLen, got2) + + if len(deleted) != len(original) { + t.Fatalf("want %d but got %d", len(original), len(added)) } }) @@ -3418,202 +3272,58 @@ func testKey(v *Nvim) func(*testing.T) { t.Run("KeyMap", func(t *testing.T) { skipBetweenVersion(t, "v0.7.0", "v0.8.0") + mode := "n" b := v.NewBatch() - mode := "n" - b.SetKeyMap(mode, "y", "yy", make(map[string]bool)) + var original []*Mapping + b.KeyMap(mode, &original) if err := b.Execute(); err != nil { t.Fatal(err) } - var wantMaps []*Mapping - wantMapsLen := 0 - switch nvimVersion.Minor { - case 6: - wantMaps = []*Mapping{ - { - LHS: "", - RHS: "nohlsearch|diffupdate", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - } - wantMapsLen = 2 - case 7: - wantMaps = []*Mapping{ - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: 0, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - } - wantMapsLen = 2 - case 8: - wantMaps = []*Mapping{ - { - LHS: "&", - RHS: ":&&", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - } - wantMapsLen = 3 - default: - wantMaps = []*Mapping{ - { - LHS: "&", - RHS: ":&&", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "Y", - RHS: "y$", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - { - LHS: "y", - RHS: "yy", - Silent: 0, - NoRemap: 0, - Expr: 0, - Buffer: 0, - SID: -9, - NoWait: 0, - }, - { - LHS: "", - RHS: "nohlsearch|diffupdate|normal! ", - Silent: 0, - NoRemap: 1, - Expr: 0, - Buffer: 0, - SID: -8, - NoWait: 0, - }, - } - wantMapsLen = 3 + lhs := "y" + rhs := "yy" + + b.SetKeyMap(mode, lhs, rhs, make(map[string]bool)) + if err := b.Execute(); err != nil { + t.Fatal(err) } - var got []*Mapping - b.KeyMap(mode, &got) + var added []*Mapping + b.KeyMap(mode, &added) if err := b.Execute(); err != nil { t.Fatal(err) } - if !reflect.DeepEqual(got, wantMaps) { - for i, gotmap := range got { - t.Logf(" got[%d]: %#v", i, gotmap) - } - for i, wantmap := range wantMaps { - t.Logf("want[%d]: %#v", i, wantmap) + + if len(added) != len(original)+1 { + t.Fatalf("want %d but got %d", len(original)+1, len(added)) + } + + var keymap *Mapping + for _, m := range added { + if m.LHS == "y" { + keymap = m + break } - t.Fatalf("KeyMap(%s) = %#v, want: %#v", mode, got, wantMaps) } - b.DeleteKeyMap(mode, "y") + if keymap.LHS != lhs && keymap.RHS != rhs { + t.Fatalf("want { LHS = %s, RHS = %s } but got { LHS = %s, RHS = %s }", lhs, rhs, keymap.LHS, keymap.RHS) + } + + b.DeleteKeyMap(mode, lhs) if err := b.Execute(); err != nil { t.Fatal(err) } - var got2 []*Mapping - b.KeyMap(mode, &got2) + var deleted []*Mapping + b.KeyMap(mode, &deleted) if err := b.Execute(); err != nil { t.Fatal(err) } - if len(got2) != wantMapsLen { - t.Fatalf("expected %d but got %#v", wantMapsLen, got2) + + if len(deleted) != len(original) { + t.Fatalf("want %d but got %d", len(original), len(added)) } }) From 07fd8ccf3658b896bc7c2660428769544ceabdc9 Mon Sep 17 00:00:00 2001 From: max Date: Sun, 30 Mar 2025 19:36:50 -0700 Subject: [PATCH 05/12] fix(nvim): set cterm colors using the colors described here rather than the color map https://neovim.io/doc/user/syntax.html#ctermbg --- nvim/api_test.go | 8 ++++---- nvim/types.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nvim/api_test.go b/nvim/api_test.go index 5c00ad2e..808e75f3 100644 --- a/nvim/api_test.go +++ b/nvim/api_test.go @@ -3570,8 +3570,8 @@ func testHighlight(v *Nvim) func(*testing.T) { const testHLName = `Test` testHLAttrs := &HLAttrs{ Bold: true, - CtermForeground: cm[`Red`], - CtermBackground: cm[`Yellow`], + CtermForeground: 12, + CtermBackground: 14, } if err := v.SetHighlight(nsID, testHLName, testHLAttrs); err != nil { t.Fatal(err) @@ -3647,8 +3647,8 @@ func testHighlight(v *Nvim) func(*testing.T) { const testHLName = `Test` testHLAttrs := &HLAttrs{ Bold: true, - CtermForeground: cm[`Red`], - CtermBackground: cm[`Yellow`], + CtermForeground: 12, + CtermBackground: 14, } b.SetHighlight(nsID, testHLName, testHLAttrs) if err := b.Execute(); err != nil { diff --git a/nvim/types.go b/nvim/types.go index 7c408411..1058a8a2 100644 --- a/nvim/types.go +++ b/nvim/types.go @@ -152,7 +152,7 @@ type HLAttrs struct { // Cterm is cterm attribute map. Sets attributed for cterm colors. // - // Note thet by default cterm attributes are same as attributes of gui color. + // Note that by default cterm attributes are same as attributes of gui color. // // This value is used only SetHighlight. Cterm *HLAttrs `msgpack:"cterm,omitempty"` From 31b3a746786ed64c439d3eccf05c7a2a54e019cf Mon Sep 17 00:00:00 2001 From: max Date: Sun, 30 Mar 2025 20:02:54 -0700 Subject: [PATCH 06/12] fix(plugin): skip subscribe test for v0.11 and above v0.11 changed the way that messages are broadcast from only to those who are subscribed, to all channels. this test, as it's written, doesn't make sense in that scenario. snippet from release notes: > vim.rpcnotify(0) and rpcnotify(0) broadcast to ALL channels. Previously > they would "multicast" only to subscribed channels (controlled by > nvim_subscribe()). Plugins and clients that want "multicast" behavior > must now maintain their own list of channels. --- nvim/plugin/plugin_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/nvim/plugin/plugin_test.go b/nvim/plugin/plugin_test.go index b515d79a..4ec59711 100644 --- a/nvim/plugin/plugin_test.go +++ b/nvim/plugin/plugin_test.go @@ -386,6 +386,22 @@ func TestSubscribe(t *testing.T) { t.Parallel() p := plugin.New(nvimtest.NewChildProcess(t)) + apiInfo, err := p.Nvim.APIInfo() + if err != nil { + t.Fatal(err) + } + if len(apiInfo) != 2 { + t.Fatalf("unknown APIInfo: %#v", apiInfo) + } + + info, ok := apiInfo[1].(map[string]any) + if !ok { + t.Fatalf("apiInfo[1] is not map[string]any type: %T", apiInfo[1]) + } + version := info["version"].(map[string]any) + if version["minor"].(int64) > 10 { + t.Skip("Since Neovim 0.11.0, rpcnotify(0) broadcasts to all channels, not just subscribed channels.") + } const event1 = "event1" eventFn1 := func(t *testing.T, v *nvim.Nvim) error { From bd0802377159b84d65b16394071b9a72825becce Mon Sep 17 00:00:00 2001 From: max Date: Sun, 30 Mar 2025 20:22:44 -0700 Subject: [PATCH 07/12] update codecov action --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 299fb016..891460c6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,7 +59,7 @@ jobs: run: | go test -race -count=1 -covermode=atomic -coverpkg=./... -coverprofile=coverage.out ./... - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v5 with: file: coverage.out flags: ${{ env.OS }}-${{ env.GO_VERSION }}-${{ env.NVIM_VERSION }} From 88285eec4a86bfb77f8ef8762ee94e2fc3b03940 Mon Sep 17 00:00:00 2001 From: max Date: Sun, 30 Mar 2025 20:25:52 -0700 Subject: [PATCH 08/12] fix(build): rename file to files for codecov action --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 891460c6..f392142b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,6 +61,6 @@ jobs: - uses: codecov/codecov-action@v5 with: - file: coverage.out + files: coverage.out flags: ${{ env.OS }}-${{ env.GO_VERSION }}-${{ env.NVIM_VERSION }} env_vars: OS,GO_VERSION,NVIM_VERSION From d2312de84b626dac67ac8b913a5eba8da2bf2d6e Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:27:12 -0700 Subject: [PATCH 09/12] chore: update go versions all of the listed go versions prior to this change are no longer supported. this bumps to more recent versions. --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f392142b..2ff53f73 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,9 +24,9 @@ jobs: - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md go-version: - - 1.18.x - - 1.19.x - - 1.20.x + - 1.22.x + - 1.23.x + - 1.24.x neovim-version: - v0.9.1 - nightly From fbd7e116dda56c6a055912b9b6026455b839ae8f Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:29:23 -0700 Subject: [PATCH 10/12] chore: add specific neovim versions for testing --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2ff53f73..957839f5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,6 +29,8 @@ jobs: - 1.24.x neovim-version: - v0.9.1 + - v0.10.4 + - v0.11.0 - nightly fail-fast: false From b8dd2bd5f24b6eeabae848baf29c42aabfd542d0 Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:34:02 -0700 Subject: [PATCH 11/12] chore: bump actions and runners versions --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 957839f5..b12f8d54 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,9 +20,9 @@ jobs: strategy: matrix: os: - - ubuntu-22.04 # https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md - - macos-13 # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md - - windows-2022 # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md + - ubuntu-24.04 # https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md + - macos-15 # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md + - windows-2025 # https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md go-version: - 1.22.x - 1.23.x @@ -44,12 +44,12 @@ jobs: echo "NVIM_VERSION=$(if [ ${{ matrix.neovim-version }} != 'nightly' ]; then echo 'stable'; else echo 'nightly'; fi)" >> $GITHUB_ENV - name: Install Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install neovim binary uses: rhysd/action-setup-vim@v1 From af022d48a1a41288d18a3d24a531bb9d92eed27b Mon Sep 17 00:00:00 2001 From: gigamaax <57466120+gigamaax@users.noreply.github.com> Date: Mon, 31 Mar 2025 10:38:07 -0700 Subject: [PATCH 12/12] chore: add concurrency check to actions workflow --- .github/workflows/test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b12f8d54..c5b9d531 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -11,6 +11,10 @@ on: - created - edited +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + defaults: run: shell: bash