11name : Test
22
33on :
4- schedule :
5- - cron : " 0 7 * * 0"
64 push :
75 branches :
86 - main
97 pull_request :
8+ paths :
9+ - " **.md"
10+ - " **.ts"
11+ - " deno.jsonc"
12+ - " .github/workflows/test.yml"
1013 workflow_dispatch :
1114
1215defaults :
1922 matrix :
2023 runner :
2124 - ubuntu-latest
22- version :
25+ deno_version :
2326 - " 1.x"
2427 runs-on : ${{ matrix.runner }}
2528 steps :
2831 - uses : actions/checkout@v4
2932 -
uses :
denoland/[email protected] 3033 with :
31- deno-version : " ${{ matrix.version }}"
34+ deno-version : " ${{ matrix.deno_version }}"
3235 - uses : actions/cache@v4
3336 with :
3437 key : deno-${{ hashFiles('**/*') }}
@@ -49,57 +52,80 @@ jobs:
4952 - windows-latest
5053 - macos-latest
5154 - ubuntu-latest
52- version :
53- - " 1.38 .x"
55+ deno_version :
56+ - " 1.45 .x"
5457 - " 1.x"
5558 host_version :
56- - vim : " v9.0.2189 "
57- nvim : " v0.9.4 "
59+ - vim : " v9.1.0448 "
60+ nvim : " v0.10.0 "
5861 runs-on : ${{ matrix.runner }}
5962 timeout-minutes : 15
6063 steps :
6164 - run : git config --global core.autocrlf false
6265 if : runner.os == 'Windows'
66+
6367 - uses : actions/checkout@v4
64- - uses : actions/checkout@v4
65- with :
66- repository : " vim-denops/denops.vim"
67- path : " .deps/denops.vim"
68+
6869 -
uses :
denoland/[email protected] 6970 with :
70- deno-version : " ${{ matrix.version }}"
71+ deno-version : " ${{ matrix.deno_version }}"
72+
73+ - name : Get denops
74+ run : |
75+ git clone https://github.com/vim-denops/denops.vim /tmp/denops.vim
76+ echo "DENOPS_TEST_DENOPS_PATH=/tmp/denops.vim" >> "$GITHUB_ENV"
77+
78+ - name : Try switching denops branch
79+ run : |
80+ git -C /tmp/denops.vim switch ${{ github.head_ref || github.ref_name }} || true
81+ git -C /tmp/denops.vim branch
82+
7183 - uses : rhysd/action-setup-vim@v1
7284 id : vim
7385 with :
7486 version : " ${{ matrix.host_version.vim }}"
75- - name : Check Vim
76- run : |
77- echo ${DENOPS_TEST_VIM}
78- ${DENOPS_TEST_VIM} --version
79- env :
80- DENOPS_TEST_VIM : ${{ steps.vim.outputs.executable }}
87+
8188 - uses : rhysd/action-setup-vim@v1
8289 id : nvim
8390 with :
8491 neovim : true
8592 version : " ${{ matrix.host_version.nvim }}"
86- - name : Check Neovim
93+
94+ - name : Export executables
8795 run : |
88- echo ${DENOPS_TEST_NVIM}
89- ${DENOPS_TEST_NVIM} --version
90- env :
91- DENOPS_TEST_NVIM : ${{ steps.nvim.outputs.executable }}
96+ echo "DENOPS_TEST_VIM_EXECUTABLE=${{ steps.vim.outputs.executable }}" >> "$GITHUB_ENV"
97+ echo "DENOPS_TEST_NVIM_EXECUTABLE=${{ steps.nvim.outputs.executable }}" >> "$GITHUB_ENV"
98+
99+ - name : Check versions
100+ run : |
101+ deno --version
102+ ${DENOPS_TEST_VIM_EXECUTABLE} --version
103+ ${DENOPS_TEST_NVIM_EXECUTABLE} --version
104+
105+ - name : Perform pre-cache
106+ run : |
107+ deno cache ${DENOPS_TEST_DENOPS_PATH}/denops/@denops-private/mod.ts ./mod.ts
108+
92109 - name : Test
93110 run : deno task test:coverage
94- env :
95- DENOPS_TEST_DENOPS_PATH : " .deps/denops.vim"
96- DENOPS_TEST_VIM_EXECUTABLE : ${{ steps.vim.outputs.executable }}
97- DENOPS_TEST_NVIM_EXECUTABLE : ${{ steps.nvim.outputs.executable }}
98- timeout-minutes : 5
111+ timeout-minutes : 15
112+
99113 - run : |
100114 deno task coverage --lcov > coverage.lcov
115+
101116 - uses : codecov/codecov-action@v4
102117 with :
103118 os : ${{ runner.os }}
104119 files : ./coverage.lcov
105120 token : ${{ secrets.CODECOV_TOKEN }}
121+
122+ jsr-publish :
123+ runs-on : ubuntu-latest
124+ steps :
125+ - uses : actions/checkout@v4
126+ - uses : denoland/setup-deno@v1
127+ with :
128+ deno-version : ${{ env.DENO_VERSION }}
129+ - name : Publish (dry-run)
130+ run : |
131+ deno publish --dry-run
0 commit comments