Update release with configurable lua version

pull/96/head
Chip Senkbeil 3 years ago
parent 54b88cda32
commit 79d938218c
No known key found for this signature in database
GPG Key ID: 35EF1F8EC72A4131

@ -6,6 +6,10 @@ on:
- v[0-9]+.[0-9]+.[0-9]+ - v[0-9]+.[0-9]+.[0-9]+
- v[0-9]+.[0-9]+.[0-9]+-** - v[0-9]+.[0-9]+.[0-9]+-**
env:
LUA_VERSION: 5.1.5
LUA_FEATURE: lua51
jobs: jobs:
macos: macos:
name: "Build release on MacOS" name: "Build release on MacOS"
@ -21,6 +25,8 @@ jobs:
BUILD_LIB: libdistant_lua.dylib BUILD_LIB: libdistant_lua.dylib
UNIVERSAL_REL_BIN: distant-macos UNIVERSAL_REL_BIN: distant-macos
UNIVERSAL_REL_LIB: distant_lua-macos.dylib UNIVERSAL_REL_LIB: distant_lua-macos.dylib
X86_REL_LIB: distant_lua-macos-intel.dylib
ARM_REL_LIB: distant_lua-macos-arm.dylib
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install Rust (x86) - name: Install Rust (x86)
@ -36,16 +42,18 @@ jobs:
toolchain: stable toolchain: stable
target: ${{ env.ARM_ARCH }} target: ${{ env.ARM_ARCH }}
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v1
- name: Build Lua 5.1 library (x86_64) - name: Build Lua ${{ env.LUA_VERSION }} library (x86_64)
run: | run: |
cd distant-lua cd distant-lua
cargo build --release --no-default-features --features lua51,vendored --target ${{ env.X86_ARCH }} cargo build --release --no-default-features --features "${{ env.LUA_FEATURE }},vendored" --target ${{ env.X86_ARCH }}
ls -l ../${{ env.X86_DIR }} ls -l ../${{ env.X86_DIR }}
- name: Build Lua 5.1 library (aarch64) cp ../${{ env.X86_DIR }}/${{ env.BUILD_LIB }} ../${{ env.X86_REL_LIB }}
- name: Build Lua ${{ env.LUA_VERSION }} library (aarch64)
run: | run: |
cd distant-lua cd distant-lua
cargo build --release --no-default-features --features lua51,vendored --target ${{ env.ARM_ARCH }} cargo build --release --no-default-features --features "${{ env.LUA_FEATURE }},vendored" --target ${{ env.ARM_ARCH }}
ls -l ../${{ env.ARM_DIR }} ls -l ../${{ env.ARM_DIR }}
cp ../${{ env.ARM_DIR }}/${{ env.BUILD_LIB }} ../${{ env.ARM_REL_LIB }}
- name: Unify libraries - name: Unify libraries
run: | run: |
lipo -create -output ${{ env.UNIVERSAL_REL_LIB }} \ lipo -create -output ${{ env.UNIVERSAL_REL_LIB }} \
@ -75,6 +83,8 @@ jobs:
path: | path: |
${{ env.UNIVERSAL_REL_BIN }} ${{ env.UNIVERSAL_REL_BIN }}
${{ env.UNIVERSAL_REL_LIB }} ${{ env.UNIVERSAL_REL_LIB }}
${{ env.X86_REL_LIB }}
${{ env.ARM_REL_LIB }}
windows: windows:
name: "Build release on Windows" name: "Build release on Windows"
@ -99,11 +109,11 @@ jobs:
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v1
- uses: xpol/setup-lua@v0.3 - uses: xpol/setup-lua@v0.3
with: with:
lua-version: "5.1.5" lua-version: "${{ env.LUA_VERSION }}"
- name: Build Lua 5.1 library (x86_64) - name: Build Lua ${{ env.LUA_VERSION }} library (x86_64)
run: | run: |
cd distant-lua cd distant-lua
cargo build --release --no-default-features --features lua51 --target ${{ env.X86_ARCH }} cargo build --release --no-default-features --features "${{ env.LUA_FEATURE }}" --target ${{ env.X86_ARCH }}
ls -l ../${{ env.X86_DIR }} ls -l ../${{ env.X86_DIR }}
mv ../${{ env.X86_DIR }}/${{ env.BUILD_LIB }} ../${{ env.X86_REL_LIB }} mv ../${{ env.X86_DIR }}/${{ env.BUILD_LIB }} ../${{ env.X86_REL_LIB }}
env: env:
@ -159,10 +169,10 @@ jobs:
sudo apt-get update sudo apt-get update
sudo apt-get install -y --no-install-recommends musl-tools sudo apt-get install -y --no-install-recommends musl-tools
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v1
- name: Build Lua 5.1 library (GNU x86_64) - name: Build Lua ${{ env.LUA_VERSION }} library (GNU x86_64)
run: | run: |
cd distant-lua cd distant-lua
cargo build --release --no-default-features --features lua51,vendored --target ${{ env.X86_GNU_ARCH }} cargo build --release --no-default-features --features "${{ env.LUA_FEATURE }},vendored" --target ${{ env.X86_GNU_ARCH }}
ls -l ../${{ env.X86_GNU_DIR }} ls -l ../${{ env.X86_GNU_DIR }}
mv ../${{ env.X86_GNU_DIR }}/${{ env.BUILD_LIB }} ../${{ env.X86_GNU_REL_LIB }} mv ../${{ env.X86_GNU_DIR }}/${{ env.BUILD_LIB }} ../${{ env.X86_GNU_REL_LIB }}
- name: Build binary (GNU x86_64) - name: Build binary (GNU x86_64)
@ -198,6 +208,8 @@ jobs:
MACOS: macos MACOS: macos
MACOS_UNIVERSAL_BIN: distant-macos MACOS_UNIVERSAL_BIN: distant-macos
MACOS_UNIVERSAL_LIB: distant_lua-macos.dylib MACOS_UNIVERSAL_LIB: distant_lua-macos.dylib
MACOS_X86_LIB: distant_lua-macos-intel.dylib
MACOS_ARM_LIB: distant_lua-macos-arm.dylib
WIN64: win64 WIN64: win64
WIN64_BIN: distant-win64.exe WIN64_BIN: distant-win64.exe
WIN64_LIB: distant_lua-win64.dll WIN64_LIB: distant_lua-win64.dll
@ -212,6 +224,10 @@ jobs:
cd ${{ env.MACOS }} cd ${{ env.MACOS }}
sha256sum ${{ env.MACOS_UNIVERSAL_LIB }} > ${{ env.MACOS_UNIVERSAL_LIB }}.sha256sum sha256sum ${{ env.MACOS_UNIVERSAL_LIB }} > ${{ env.MACOS_UNIVERSAL_LIB }}.sha256sum
echo "SHA_MACOS_LUA_LIB=$(cat ${{ env.MACOS_UNIVERSAL_LIB }}.sha256sum)" >> $GITHUB_ENV echo "SHA_MACOS_LUA_LIB=$(cat ${{ env.MACOS_UNIVERSAL_LIB }}.sha256sum)" >> $GITHUB_ENV
sha256sum ${{ env.MACOS_X86_LIB }} > ${{ env.MACOS_X86_LIB }}.sha256sum
echo "SHA_MACOS_X86_LUA_LIB=$(cat ${{ env.MACOS_X86_LIB }}.sha256sum)" >> $GITHUB_ENV
sha256sum ${{ env.MACOS_ARM_LIB }} > ${{ env.MACOS_ARM_LIB }}.sha256sum
echo "SHA_MACOS_ARM_LUA_LIB=$(cat ${{ env.MACOS_ARM_LIB }}.sha256sum)" >> $GITHUB_ENV
sha256sum ${{ env.MACOS_UNIVERSAL_BIN }} > ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum sha256sum ${{ env.MACOS_UNIVERSAL_BIN }} > ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum
echo "SHA_MACOS_BIN=$(cat ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum)" >> $GITHUB_ENV echo "SHA_MACOS_BIN=$(cat ${{ env.MACOS_UNIVERSAL_BIN }}.sha256sum)" >> $GITHUB_ENV
- name: Generate Win64 SHA256 checksums - name: Generate Win64 SHA256 checksums
@ -243,12 +259,15 @@ jobs:
target_commitish: ${{ github.sha }} target_commitish: ${{ github.sha }}
draft: false draft: false
prerelease: | prerelease: |
contains(env.TAG_NAME, 'alpha') || contains("${{ env.TAG_NAME }}", 'alpha') ||
contains(env.TAG_NAME, 'beta') || contains("${{ env.TAG_NAME }}", 'beta') ||
contains(env.TAG_NAME, 'nightly') contains("${{ env.TAG_NAME }}", 'nightly') ||
contains("${{ env.TAG_NAME }}", 'snapshot')
files: | files: |
${{ env.MACOS }}/${{ env.MACOS_UNIVERSAL_BIN }} ${{ env.MACOS }}/${{ env.MACOS_UNIVERSAL_BIN }}
${{ env.MACOS }}/${{ env.MACOS_UNIVERSAL_LIB }} ${{ env.MACOS }}/${{ env.MACOS_UNIVERSAL_LIB }}
${{ env.MACOS }}/${{ env.MACOS_X86_LIB }}
${{ env.MACOS }}/${{ env.MACOS_ARM_LIB }}
${{ env.WIN64 }}/${{ env.WIN64_BIN }} ${{ env.WIN64 }}/${{ env.WIN64_BIN }}
${{ env.WIN64 }}/${{ env.WIN64_LIB }} ${{ env.WIN64 }}/${{ env.WIN64_LIB }}
${{ env.LINUX64 }}/${{ env.LINUX64_GNU_BIN }} ${{ env.LINUX64 }}/${{ env.LINUX64_GNU_BIN }}
@ -262,7 +281,7 @@ jobs:
2. Rename to `distant_lua.dll` 2. Rename to `distant_lua.dll`
3. Import via `distant = require("distant_lua")` 3. Import via `distant = require("distant_lua")`
### macOS ### macOS
1. Download **${{ env.MACOS_UNIVERSAL_LIB }}** 1. Download **${{ env.MACOS_UNIVERSAL_LIB }}** (or **${{ env.MACOS_X86_LIB }}** or **${{ env.MACOS_ARM_LIB }}**)
2. Rename to `distant_lua.so` (still works on Mac for Lua) 2. Rename to `distant_lua.so` (still works on Mac for Lua)
- Alternatively, you can rename to `distant_lua.dylib` and add - Alternatively, you can rename to `distant_lua.dylib` and add
`package.cpath = package.cpath .. ";?.dylib"` within your Lua code before `package.cpath = package.cpath .. ";?.dylib"` within your Lua code before
@ -275,7 +294,7 @@ jobs:
## Artifacts ## Artifacts
A Lua library is built out to provide bindings to `distant-core` and `distant-ssh2` within Lua. A Lua library is built out to provide bindings to `distant-core` and `distant-ssh2` within Lua.
While this is geared towards usage in neovim, this Lua binding is generic and can be used in Lua While this is geared towards usage in neovim, this Lua binding is generic and can be used in Lua
anyway. The library is built against Lua 5.1 (compatible with Luajit). Make sure to rename the anyway. The library is built against Lua ${{ env.LUA_VERSION }}. Make sure to rename the
library to `distant_lua.{dll,dylib,so}` prior to importing as that is the expected name! library to `distant_lua.{dll,dylib,so}` prior to importing as that is the expected name!
- **linux64** is the Linux library that supports the x86-64 platform using libc - **linux64** is the Linux library that supports the x86-64 platform using libc
- **macos** is the universal MacOS library that supports x86-64 and aarch64 (ARM) platforms - **macos** is the universal MacOS library that supports x86-64 and aarch64 (ARM) platforms
@ -289,6 +308,8 @@ jobs:
## SHA256 Checksums ## SHA256 Checksums
``` ```
${{ env.SHA_MACOS_LUA_LIB }} ${{ env.SHA_MACOS_LUA_LIB }}
${{ env.SHA_MACOS_X86_LUA_LIB }}
${{ env.SHA_MACOS_ARM_LUA_LIB }}
${{ env.SHA_MACOS_BIN }} ${{ env.SHA_MACOS_BIN }}
${{ env.SHA_WIN64_LUA_LIB }} ${{ env.SHA_WIN64_LUA_LIB }}
${{ env.SHA_WIN64_BIN }} ${{ env.SHA_WIN64_BIN }}

Loading…
Cancel
Save