aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/actions/cache/action.yml22
-rw-r--r--.github/workflows/ci.yml27
2 files changed, 27 insertions, 22 deletions
diff --git a/.github/actions/cache/action.yml b/.github/actions/cache/action.yml
new file mode 100644
index 0000000000..858045c02a
--- /dev/null
+++ b/.github/actions/cache/action.yml
@@ -0,0 +1,22 @@
+name: 'Cache'
+description: "This action caches neovim dependencies"
+runs:
+ using: "composite"
+ steps:
+ - run: echo "CACHE_KEY=${{ github.job }}-${{ github.base_ref }}" >> $GITHUB_ENV
+ shell: bash
+
+ - if: ${{ matrix }}
+ run: echo "CACHE_KEY=$CACHE_KEY-${{ join(matrix.*, '-') }}" >> $GITHUB_ENV
+ shell: bash
+
+ # Avoid using '**/CMakeLists.txt' (or any pattern starting with '**/') even
+ # if it makes the expression below simpler. hashFiles() has a timer that
+ # will fail the job if it times out, which can happen if there are too many
+ # files to search through.
+ - uses: actions/cache@v3
+ with:
+ path: ${{ env.CACHE_NVIM_DEPS_DIR }}
+ key: ${{ env.CACHE_KEY }}-${{ hashFiles('cmake**', 'ci/**',
+ '.github/workflows/ci.yml', 'CMakeLists.txt',
+ 'runtime/CMakeLists.txt', 'src/nvim/**/CMakeLists.txt') }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9c9de055cf..00ba55d578 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -69,12 +69,7 @@ jobs:
mkdir -p $HOME/.cache
cp $build_dir/uncrustify ${{ env.CACHE_UNCRUSTIFY }}
- - name: Cache artifacts
- uses: actions/cache@v3
- with:
- path: |
- ${{ env.CACHE_NVIM_DEPS_DIR }}
- key: lint-${{ hashFiles('cmake/*', '**/CMakeLists.txt', '!cmake.deps/**CMakeLists.txt') }}-${{ github.base_ref }}
+ - uses: ./.github/actions/cache
- name: Build third-party deps
run: ./ci/before_script.sh
@@ -167,12 +162,7 @@ jobs:
ninja-build \
pkg-config
- - name: Cache artifacts
- uses: actions/cache@v3
- with:
- path: |
- ${{ env.CACHE_NVIM_DEPS_DIR }}
- key: lint-${{ hashFiles('cmake/*', '**/CMakeLists.txt', '!cmake.deps/**CMakeLists.txt') }}-${{ github.base_ref }}
+ - uses: ./.github/actions/cache
- name: Build third-party deps
run: ./ci/before_script.sh
@@ -273,12 +263,7 @@ jobs:
- name: Setup interpreter packages
run: ./ci/install.sh
- - name: Cache dependencies
- uses: actions/cache@v3
- with:
- path: |
- ${{ env.CACHE_NVIM_DEPS_DIR }}
- key: ${{ matrix.runner }}-${{ matrix.flavor }}-${{ matrix.cc }}-${{ hashFiles('cmake/*', 'cmake.deps/**', '**/CMakeLists.txt') }}-${{ github.base_ref }}
+ - uses: ./.github/actions/cache
- name: Build third-party deps
run: ./ci/before_script.sh
@@ -315,15 +300,13 @@ jobs:
timeout-minutes: 45
env:
DEPS_BUILD_DIR: ${{ github.workspace }}/nvim-deps
+ CACHE_NVIM_DEPS_DIR: ${{ github.workspace }}/nvim-deps
DEPS_PREFIX: ${{ github.workspace }}/nvim-deps/usr
name: windows (MSVC_64)
steps:
- uses: actions/checkout@v3
- - uses: actions/cache@v3
- with:
- path: ${{ env.DEPS_BUILD_DIR }}
- key: windows-${{ hashFiles('cmake.deps/**') }}
+ - uses: ./.github/actions/cache
- name: Set env
run: ./.github/workflows/env.ps1