diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..97d3254 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,23 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +charset = utf-8 + +[*.lua] +indent_style = space +indent_size = 3 + +[*.rockspec] +indent_style = space +indent_size = 3 + +[*.md] +indent_style = space +indent_size = 2 + +[Makefile] +indent_style = tab +indent_size = 4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..0b54968 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,38 @@ +name: Lint + +concurrency: + # for PR's cancel the running task, if another commit is pushed + group: ${{ github.workflow }} ${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +on: + # build on PR and push-to-main. This works for short-lived branches, and saves + # CPU cycles on duplicated tests. + # For long-lived branches that diverge, you'll want to run on all pushes, not + # just on push-to-main. + pull_request: {} + push: + branches: + - master + + +jobs: + lint: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + + - uses: leafo/gh-actions-lua@v10 + with: + luaVersion: "5.4" + + - uses: leafo/gh-actions-luarocks@v4 + + - name: dependencies + run: | + luarocks install luacheck + + - name: lint + run: | + luacheck . diff --git a/.github/workflows/unix_build.yml b/.github/workflows/unix_build.yml new file mode 100644 index 0000000..6b9ba13 --- /dev/null +++ b/.github/workflows/unix_build.yml @@ -0,0 +1,50 @@ +name: "Unix build" + +concurrency: + # for PR's cancel the running task, if another commit is pushed + group: ${{ github.workflow }} ${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +on: + # build on PR and push-to-main. This works for short-lived branches, and saves + # CPU cycles on duplicated tests. + # For long-lived branches that diverge, you'll want to run on all pushes, not + # just on push-to-main. + pull_request: {} + push: + branches: + - master + + +jobs: + test: + runs-on: ubuntu-20.04 + + strategy: + fail-fast: false + matrix: + luaVersion: ["5.1", "5.2", "5.3", "5.4", "luajit-2.1.0-beta3", "luajit-openresty"] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - uses: leafo/gh-actions-lua@v10 + with: + luaVersion: ${{ matrix.luaVersion }} + + - uses: leafo/gh-actions-luarocks@v4 + + - name: dependencies + run: | + luarocks install busted + luarocks install cluacov --deps-mode=none + + - name: install + run: | + luarocks make + + - name: test + run: | + busted --Xoutput "--color" + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eae1ed2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Compiled Lua sources +luac.out + +# LuaCov files +*.report.out +*.stats.out + +# luarocks build files +*.rock +*.zip +*.tar.gz + +# Object files +*.o +*.os +*.ko +*.obj +*.elf + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo +*.def +*.exp + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + diff --git a/.luacheckrc b/.luacheckrc index 1b2b2fd..a3cb57e 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,8 +1,29 @@ std = "min" -include_files = {"src", "spec"} + +not_globals = { + -- deprecated Lua 5.0 functions + "string.len", + "table.getn", +} + +include_files = { + "**/*.lua", + "**/*.rockspec", + ".busted", + ".luacheckrc", +} + exclude_files = { "spec/*/*", "src/luacov/reporter/html/static/*.js", "src/luacov/reporter/html/static/*.css", + + -- The Github Actions Lua Environment + ".lua", + ".luarocks", + ".install", +} + +files["spec/**/*.lua"] = { + std = "+busted", } -files.spec.std = "+busted"