ci: create setup action

This deduplicates common operations.
This commit is contained in:
dundargoc 2023-11-30 12:05:13 +01:00 committed by dundargoc
parent 76a30f2bd0
commit ce6fefbab9
7 changed files with 47 additions and 40 deletions

29
.github/actions/setup/action.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: 'setup'
description: "Creates necessary setup for CI"
inputs:
install_flags:
description: 'Install script flags'
required: false
default: ''
runs:
using: "composite"
steps:
- name: Set $BIN_DIR
shell: bash
run: echo "$BIN_DIR" >> $GITHUB_PATH
- if: ${{ runner.os != 'Windows' }}
name: Set ulimit
shell: bash
run: ulimit -c unlimited
- if: ${{ runner.os == 'Windows' }}
run: .github/scripts/env.ps1
shell: pwsh
- name: Install dependencies
run: ./.github/scripts/install_deps.sh ${{ inputs.install_flags }}
shell: bash
- name: Cache
uses: ./.github/actions/cache

View File

@ -18,11 +18,11 @@ jobs:
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- name: Install dependencies
run: |
./.github/scripts/install_deps.sh
sudo apt-get install -y doxygen python3-msgpack
- uses: ./.github/actions/cache
- name: Generate docs
run: |

View File

@ -25,7 +25,7 @@ jobs:
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/setup
- run: printf 'NVIM_BUILD_TYPE=Release\n' >> $GITHUB_ENV
- name: Build universal binary
@ -40,11 +40,7 @@ jobs:
CMAKE_VERSION: '3.10.0'
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- name: Set up environment
run: echo "$BIN_DIR" >> $GITHUB_PATH
- uses: ./.github/actions/setup
- name: Install minimum required version of cmake
run: |
@ -73,7 +69,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/setup
- name: Build bundled dependencies
run: make deps

View File

@ -20,19 +20,14 @@ jobs:
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: ./.github/scripts/install_deps.sh
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: cpp
- uses: ./.github/actions/cache
- run: make
- name: Perform CodeQL Analysis

View File

@ -9,9 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/setup
- name: Download Coverity
run: |

View File

@ -14,8 +14,8 @@ jobs:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/cache
- uses: ./.github/actions/setup
- name: Build
run: |
cmake -S cmake.deps --preset ci

View File

@ -35,15 +35,13 @@ jobs:
CC: clang
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/cache
- uses: ./.github/actions/setup
- name: Install stylua
run: |
URL=$(curl -L https://api.github.com/repos/JohnnyMorganz/StyLua/releases/latest | jq -r '.assets[] | select(.name == "stylua-linux-x86_64.zip") | .browser_download_url')
wget --directory-prefix="$BIN_DIR" "$URL"
(cd "$BIN_DIR"; unzip stylua*.zip)
echo "$BIN_DIR" >> $GITHUB_PATH
- name: Build third-party deps
run: |
@ -88,8 +86,7 @@ jobs:
CC: clang
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/cache
- uses: ./.github/actions/setup
- name: Build third-party deps
run: |
cmake -S cmake.deps --preset ci
@ -124,13 +121,9 @@ jobs:
CC: ${{ matrix.build.cc }}
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh --test
- uses: ./.github/actions/cache
- name: Set up environment
run: |
ulimit -c unlimited
echo "$BIN_DIR" >> $GITHUB_PATH
- uses: ./.github/actions/setup
with:
install_flags: "--test"
- name: Create log dir
run: mkdir -p "$LOG_DIR"
@ -213,8 +206,7 @@ jobs:
test: [functional, old]
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/cache
- run: .github/scripts/env.ps1
- uses: ./.github/actions/setup
- name: Build deps
run: |
@ -281,8 +273,7 @@ jobs:
CC: gcc
steps:
- uses: actions/checkout@v4
- run: ./.github/scripts/install_deps.sh
- uses: ./.github/actions/cache
- uses: ./.github/actions/setup
- name: Build third-party deps
run: |
@ -308,11 +299,11 @@ jobs:
CC: gcc
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- name: Install dependencies
run: |
sudo add-apt-repository ppa:neovim-ppa/stable
./.github/scripts/install_deps.sh
sudo apt-get install -y \
libluajit-5.1-dev \
libmsgpack-dev \
@ -329,8 +320,6 @@ jobs:
# Remove comments from packages once we start using these external
# dependencies.
- uses: ./.github/actions/cache
- name: Build third-party deps
run: |
cmake -S cmake.deps --preset external_deps