Restore state when recording __concat metamethod throws an error. #2692
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: Static analysis | |
on: | |
push: | |
branches-ignore: | |
- '**-notest' | |
- 'upstream-**' | |
tags-ignore: | |
- '**' | |
concurrency: | |
# An update of a developer branch cancels the previously | |
# scheduled workflow run for this branch. However, the default | |
# branch, and long-term branch (tarantool/release/2.11, | |
# tarantool/release/2.10, etc) workflow runs are never canceled. | |
# | |
# We use a trick here: define the concurrency group as 'workflow | |
# run ID' + # 'workflow run attempt' because it is a unique | |
# combination for any run. So it effectively discards grouping. | |
# | |
# XXX: we cannot use `github.sha` as a unique identifier because | |
# pushing a tag may cancel a run that works on a branch push | |
# event. | |
group: ${{ startsWith(github.ref, 'refs/heads/tarantool/') | |
&& format('{0}-{1}', github.run_id, github.run_attempt) | |
|| format('{0}-{1}', github.workflow, github.ref) }} | |
cancel-in-progress: true | |
jobs: | |
test-lint: | |
runs-on: [self-hosted, lightweight, Linux, x86_64] | |
name: LuaJIT linters (luacheck, flake8, codespell) | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: environment | |
uses: ./.github/actions/setup | |
- name: setup | |
run: | | |
# TODO: Move this step to a separate action. | |
sudo apt -y update | |
sudo apt -y install cmake ninja-build lua5.1 luarocks | |
sudo luarocks install luacheck | |
sudo pip3 install flake8==6.1.0 | |
sudo pip3 install codespell==2.2.5 | |
# Set CMAKE_BUILD_PARALLEL_LEVEL environment variable to | |
# limit the number of parallel jobs for build/test step. | |
echo CMAKE_BUILD_PARALLEL_LEVEL=$(($(nproc) + 1)) | tee -a $GITHUB_ENV | |
- name: configure | |
run: cmake -S . -B ${{ env.BUILDDIR }} -G Ninja | |
- name: lint | |
run: cmake --build . --target LuaJIT-lint | |
working-directory: ${{ env.BUILDDIR }} |