Skip to content

Update GitHub Actions upload-artifact to v4 #757

Update GitHub Actions upload-artifact to v4

Update GitHub Actions upload-artifact to v4 #757

Workflow file for this run

name: Build And Test
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
BuildTest:
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- name: Linux_GCC
flavor: Debug
runner: ubuntu-22.04
generator: Ninja
cc: gcc
cxx: g++
- name: Linux_LLVM
flavor: Debug
runner: ubuntu-22.04
generator: Ninja
cc: clang
cxx: clang++
- name: Linux_Release
flavor: Release
runner: ubuntu-20.04
generator: Ninja
cc: gcc
cxx: g++
publish: true
- name: MacOS_GCC
flavor: Debug
runner: macos-12
generator: Ninja
cc: gcc-12
cxx: g++-12
- name: MacOS_Release
flavor: Release
runner: macos-12
generator: Ninja
cc: clang
cxx: clang++
publish: true
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
#
# Setup and Configuration
#
- name: Linux - Setup
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
run: |
sudo add-apt-repository -y ppa:neovim-ppa/stable
sudo apt-get install -y neovim ninja-build libqt5svg5 libqt5svg5-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get update -y
- name: MacOS - Setup
if: ${{ startsWith(matrix.runner, 'macos') }}
run: |
brew install neovim
brew ls --formula | grep -wq ninja || brew install ninja
brew ls --formula | grep -wq qt5 || brew install qt@5
brew ls --formula | grep -wq msgpack || brew install msgpack
#
# Build and Test
#
- name: Neovim Version
run: nvim --version
- name: Configure
env:
CMAKE_BUILD_TYPE: ${{ matrix.flavor }}
CMAKE_GENERATOR: ${{ matrix.generator }}
run: >
env PATH=${{ startsWith(matrix.runner, 'macos') && '/usr/local/opt/qt@5/bin:' || '' }}/usr/local/bin:/usr/bin/:/bin
cmake -B ./build
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install
-DCMAKE_C_COMPILER=${{ matrix.cc }}
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }}
-DENABLE_TESTS=ON
-DCTEST_EXE_ARGS=${{ matrix.ctest_exe_args }}
- name: Build
run: cmake --build ${{ github.workspace }}/build
- name: Test
uses: GabrielBB/xvfb-action@v1 # Required by Linux, no X11 $DISPLAY
with:
working-directory: ${{ github.workspace }}/build
run: ctest -VV --timeout 120 --output-on-failure -C ${{ matrix.flavor }}
#
# Deploy Release Binaries
#
- name: Linux - Publish
if: ${{ matrix.publish && startsWith(matrix.runner, 'ubuntu') }}
env:
ARCH: x86_64
run: |
cmake --build ./build --target install
wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod a+x linuxdeployqt-continuous-x86_64.AppImage
./linuxdeployqt-continuous-x86_64.AppImage ./install/share/applications/nvim-qt.desktop -appimage -qmake=/usr/lib/qt5/bin/qmake
- name: MacOS - Publish
if: ${{ matrix.publish && startsWith(matrix.runner, 'macos') }}
run: |
/usr/local/opt/qt@5/bin/macdeployqt ./build/bin/nvim-qt.app -dmg
mv ./build/bin/nvim-qt.dmg neovim-qt.dmg
- name: Upload Artifacts
if: ${{ matrix.publish }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
if-no-files-found: ignore
path: |
Neovim-Qt-*-x86_64.AppImage
neovim-qt.dmg
neovim-qt-installer.msi
neovim-qt.zip