LuaRocks의 rockspec 업데이트를 간편하게 수행

7147 단어 Luatech
루아락스가 올린 자작 포장 버전을 높일 때 록스펙을 수동으로 편집하는 것은 번거롭다.
mypackage-1.0.0-1.rockspec
package = "mypackage"
version = "1.0.0-1"
source = {
   url = "git+https://github.com/notomo/mypackage.git",
   tag = "v1.0.0"
}
build = {
   type = "builtin",
   modules = {}
}
파일 이름과 versionsource.tag 3곳을 변경해야 합니다.
실제로 이 문제를 해결하는 하위 명령new_version을 제공했다.
$ luarocks new_version --dir rockspec --tag=v1.0.1
Wrote rockspec/mypackage-1.0.1-1.rockspec
--dir 디렉터리에 있는 rockspec을 기반으로 --tag 버전의 rockspec을 만들 수 있습니다.new_version를 사용하면 간단한 Makefile로 새 버전을 쉽게 발표할 수 있습니다.
https://github.com/luarocks/luarocks/wiki/Creating-a-rock#method-1-using-a-repository-such-as-github를 전제로 함)
Makefile
VERSION :=
ROCKSPEC_FILE := rockspec/mypackage-${VERSION}-1.rockspec

new_rockspec:
	luarocks new_version --dir rockspec --tag=v${VERSION}
	cat ${ROCKSPEC_FILE}
	luarocks make ${ROCKSPEC_FILE}
.PHONY: new_rockspec

release: new_rockspec
	luarocks install dkjson
	luarocks upload ${ROCKSPEC_FILE} --temp-key=${LUAROCKS_API_KEY}
.PHONY: release
$ make new_rockspec VERSION=1.0.1
luarocks new_version --dir rockspec --tag=v1.0.1
Wrote rockspec/mypackage-1.0.1-1.rockspec
cat rockspec/mypackage-1.0.1-1.rockspec
package = "mypackage"
version = "1.0.1-1"
source = {
   url = "git+https://github.com/notomo/mypackage.git",
   tag = "v1.0.1"
}
build = {
   type = "builtin",
   modules = {}
}
luarocks make rockspec/mypackage-1.0.1-1.rockspec

mypackage 1.0.1-1 is now installed in /home/notomo/.local

코드에 버전을 포함하지 않으면 gittag의 push에 게시할 수 있는 GitHub Action이 통합됩니다.
삽입된 버전이 필요하면 어떻게 해야 할지 모르겠어요.앞으로의 과제.
name: Release
on:
 push:
   tags:
     - "v*"

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - uses: leafo/gh-actions-lua@v7
      - uses: leafo/gh-actions-luarocks@v2
      # luarocksのsetupができれば何でもいい

      - run: echo ::set-output name=version::${GITHUB_REF/refs\/tags\/v/}
        id: var

      - run: make release TARGET_VERSION=${{ steps.var.outputs.version }}
        env:
          LUAROCKS_API_KEY: ${{ secrets.LUAROCKS_API_KEY }}

좋은 웹페이지 즐겨찾기