diff options
| author | Marc Jakobi <mrcjkb89@outlook.com> | 2023-01-10 15:33:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-10 15:33:23 +0100 |
| commit | e8c01bab917537ba4f54193c29b77bf4a04584d3 (patch) | |
| tree | 36a7689c727ffb304ad14a4d60e8cc469de9e346 | |
| parent | 04af51dbfb17c2afa0b8d82b0e842e0638201ca9 (diff) | |
feat: add rockspec + luarocks upload workflow (#2276)
telescope.nvim is a common dependency across Neovim plugins.
Using luarocks may alleviate the need for users to specify their
plugins' dependencies in their plugin manager.
(e.g., vim-plug or packer).
See also:
https://teto.github.io/posts/2021-09-17-neovim-plugin-luarocks.html
| -rw-r--r-- | .github/workflows/release.yml | 22 | ||||
| -rw-r--r-- | Makefile | 6 | ||||
| -rw-r--r-- | scripts/luarocks-upload.sh | 10 | ||||
| -rw-r--r-- | scripts/test-luarocks-install.sh | 4 | ||||
| -rw-r--r-- | telescope.nvim-scm-1.rockspec | 44 |
5 files changed, 86 insertions, 0 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..11ce428 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,22 @@ +name: "release" +on: + push: + tags: + - '*' +jobs: + luarocks-upload: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: leafo/gh-actions-lua@v9 + with: + luaVersion: "luajit-2.1.0-beta3" + - uses: leafo/gh-actions-luarocks@v4 + - name: Install dkjson + run: luarocks install dkjson + - name: Luarocks Upload + env: + LUAROCKS_API_KEY: ${{ secrets.LUAROCKS_API_KEY }} + run: make luarocks_upload + - name: Install release + run: make test_luarocks_install @@ -6,3 +6,9 @@ lint: docgen: nvim --headless --noplugin -u scripts/minimal_init.vim -c "luafile ./scripts/gendocs.lua" -c 'qa' + +luarocks_upload: + bash ./scripts/luarocks-upload.sh + +test_luarocks_install: + bash ./scripts/test-luarocks-install.sh diff --git a/scripts/luarocks-upload.sh b/scripts/luarocks-upload.sh new file mode 100644 index 0000000..8807d9e --- /dev/null +++ b/scripts/luarocks-upload.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# Expects the LUAROCKS_API_KEY secret to be set + +TMP_DIR=$(mktemp -d) +MODREV=$(git describe --tags --always --first-parent | tr -d "v") +DEST_ROCKSPEC="$TMP_DIR/telescope.nvim-$MODREV-1.rockspec" +cp "telescope.nvim-scm-1.rockspec" "$DEST_ROCKSPEC" +sed -i "s/= 'scm'/= '$MODREV'/g" "$DEST_ROCKSPEC" +luarocks upload "$DEST_ROCKSPEC" --api-key="$LUAROCKS_API_KEY" diff --git a/scripts/test-luarocks-install.sh b/scripts/test-luarocks-install.sh new file mode 100644 index 0000000..8198015 --- /dev/null +++ b/scripts/test-luarocks-install.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +MODREV=$(git describe --tags --always --first-parent | tr -d "v") +luarocks install "telescope.nvim" "$MODREV" diff --git a/telescope.nvim-scm-1.rockspec b/telescope.nvim-scm-1.rockspec new file mode 100644 index 0000000..f717d64 --- /dev/null +++ b/telescope.nvim-scm-1.rockspec @@ -0,0 +1,44 @@ +local MODREV, SPECREV = 'scm', '-1' +rockspec_format = '3.0' +package = 'telescope.nvim' +version = MODREV .. SPECREV + +description = { + summary = 'Find, Filter, Preview, Pick. All lua, all the time.', + detailed = [[ + A highly extendable fuzzy finder over lists. + Built on the latest awesome features from neovim core. + Telescope is centered around modularity, allowing for easy customization. + ]], + labels = { 'neovim', 'plugin', }, + homepage = 'https://github.com/nvim-telescope/telescope.nvim', + license = 'MIT', +} + +dependencies = { + 'lua == 5.1', + 'plenary.nvim', +} + +source = { + url = 'https://github.com/nvim-telescope/telescope.nvim/archive/refs/tags/' .. MODREV .. '.zip', + dir = 'telescope.nvim-' .. MODREV +} + +if MODREV == 'scm' then + source = { + url = 'git://github.com/nvim-telescope/telescope.nvim', + } +end + +build = { + type = 'builtin', + copy_directories = { + 'doc', + 'ftplugin', + 'plugin', + 'scripts', + 'autoload', + 'data', + } +} |
