Update GitHub Actions upload-artifact to v4 #758
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |