From 567d42489c6c4d8515a779e9c5af0b5bf62772bd Mon Sep 17 00:00:00 2001 From: Jongwook Choi Date: Thu, 31 Oct 2024 11:13:01 -0400 Subject: [PATCH] fix(ci): do not use matrix variables for OS-specific commands The use of `matrix.NIGHTLY`, `matrix.EXTRACT`, etc. makes CI matrix configuration difficult. Instead, let the shell script for installing neovim takes care of OS specializations. --- .github/workflows/test.yml | 51 +++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df8f1858..ffd1965b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,27 +41,12 @@ jobs: include: - os: 'ubuntu-20.04' python-version: '3.7' - NIGHTLY: nvim-linux64.tar.gz - NVIM_BIN_PATH: nvim-linux64/bin - EXTRACT: tar xzf - - os: 'ubuntu-latest' - NIGHTLY: nvim-linux64.tar.gz - NVIM_BIN_PATH: nvim-linux64/bin - EXTRACT: tar xzf - os: 'macos-12' python-version: '3.7' - os: 'macos-12' python-version: '3.8' - os: 'macos-12' python-version: '3.9' - - os: 'macos-latest' - NIGHTLY: nvim-macos-x86_64.tar.gz - NVIM_BIN_PATH: nvim-macos-x86_64/bin - EXTRACT: tar xzf - - os: 'windows-latest' - NIGHTLY: nvim-win64.zip - NVIM_BIN_PATH: nvim-win64/bin - EXTRACT: unzip name: "test (python ${{ matrix.python-version }}, ${{ matrix.os }})" runs-on: ${{ matrix.os }} @@ -72,20 +57,36 @@ jobs: cache: 'pip' python-version: ${{ matrix.python-version }} - - name: update path (bash) + - name: install neovim (Linux/macOS) if: runner.os != 'Windows' - run: echo "$(pwd)/${{ matrix.NVIM_BIN_PATH }}" >> $GITHUB_PATH + run: | + set -eu -o pipefail - - name: update path (windows) - if: runner.os == 'Windows' - run: echo "$(pwd)/${{ matrix.NVIM_BIN_PATH }}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + if [[ "$RUNNER_OS" == "Linux" ]]; then + BASE="nvim-linux64" + elif [[ "$RUNNER_OS" == "macOS" ]]; then + BASE="nvim-macos-x86_64" + else + echo "$RUNNER_OS not supported"; exit 1; + fi - - name: install neovim + curl -LO "https://github.com/neovim/neovim/releases/download/nightly/${BASE}.tar.gz" + tar xvf "${BASE}.tar.gz" + echo "RUNNER_OS = $RUNNER_OS" + $BASE/bin/nvim --version + + # update $PATH for later steps + echo "$(pwd)/nvim-win64/bin" >> $GITHUB_PATH + + - name: install neovim (Windows) + if: runner.os == 'Windows' run: | - curl -LO 'https://github.com/neovim/neovim/releases/download/nightly/${{ matrix.NIGHTLY }}' - ${{ matrix.EXTRACT }} ${{ matrix.NIGHTLY }} - echo '${{ runner.os }}' - nvim --version + curl -LO "https://github.com/neovim/neovim/releases/download/nightly/nvim-win64.zip" + unzip nvim-win64.zip + nvim-win64/bi/nvim --version + + # update $PATH for later steps + echo "$(pwd)/$BASE/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: install dependencies run: |