mlua/.github/workflows/main.yml

236 lines
8.0 KiB
YAML
Raw Normal View History

2020-01-25 16:53:44 -05:00
name: CI
on: [push, pull_request]
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
2022-09-12 18:29:05 -04:00
os: [ubuntu-22.04, macos-latest, windows-latest]
2020-05-11 20:43:42 -04:00
rust: [stable]
lua: [lua54, lua53, lua52, lua51, luajit, luau, luau-jit, luau-vector4]
2020-01-25 16:53:44 -05:00
include:
2022-09-12 18:29:05 -04:00
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
2020-01-25 16:53:44 -05:00
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
- name: Build ${{ matrix.lua }} vendored
run: |
cargo build --features "${{ matrix.lua }},vendored"
2022-12-22 11:30:14 -05:00
cargo build --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable"
2022-09-12 18:29:05 -04:00
shell: bash
- name: Build ${{ matrix.lua }} pkg-config
if: ${{ matrix.os == 'ubuntu-22.04' }}
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends liblua5.4-dev liblua5.3-dev liblua5.2-dev liblua5.1-0-dev libluajit-5.1-dev
cargo build --features "${{ matrix.lua }}"
2020-01-25 16:53:44 -05:00
2021-01-16 08:32:38 -05:00
build_aarch64_cross_macos:
name: Cross-compile to aarch64-apple-darwin
runs-on: macos-latest
2021-01-16 08:32:38 -05:00
needs: build
strategy:
matrix:
lua: [lua54, lua53, lua52, lua51, luajit]
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: aarch64-apple-darwin
- name: Cross-compile
2022-12-22 11:30:14 -05:00
run: cargo build --target aarch64-apple-darwin --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable"
2021-01-16 08:32:38 -05:00
build_aarch64_cross_ubuntu:
name: Cross-compile to aarch64-unknown-linux-gnu
2022-09-12 18:29:05 -04:00
runs-on: ubuntu-22.04
2021-01-16 08:32:38 -05:00
needs: build
strategy:
matrix:
lua: [lua54, lua53, lua52, lua51, luajit]
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: aarch64-unknown-linux-gnu
- name: Install ARM compiler toolchain
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu libc6-dev-arm64-cross
shell: bash
- name: Cross-compile
2022-12-22 11:30:14 -05:00
run: cargo build --target aarch64-unknown-linux-gnu --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable"
2022-09-12 18:29:05 -04:00
shell: bash
2021-01-16 08:32:38 -05:00
build_armv7_cross_ubuntu:
name: Cross-compile to armv7-unknown-linux-gnueabihf
2022-09-12 18:29:05 -04:00
runs-on: ubuntu-22.04
2021-01-16 08:32:38 -05:00
needs: build
strategy:
matrix:
lua: [lua54, lua53, lua52, lua51]
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: armv7-unknown-linux-gnueabihf
- name: Install ARM compiler toolchain
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends gcc-arm-linux-gnueabihf libc-dev-armhf-cross
shell: bash
- name: Cross-compile
2022-12-22 11:30:14 -05:00
run: cargo build --target armv7-unknown-linux-gnueabihf --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable"
2022-09-12 18:29:05 -04:00
shell: bash
2021-01-16 08:32:38 -05:00
2020-05-11 20:43:42 -04:00
test:
name: Test
runs-on: ${{ matrix.os }}
2020-01-25 16:53:44 -05:00
needs: build
2020-05-11 20:43:42 -04:00
strategy:
matrix:
2022-09-12 18:29:05 -04:00
os: [ubuntu-22.04, macos-latest, windows-latest]
2021-03-30 06:50:09 -04:00
rust: [stable, nightly]
lua: [lua54, lua53, lua52, lua51, luajit, luajit52, luau, luau-jit, luau-vector4]
2020-05-11 20:43:42 -04:00
include:
2022-09-12 18:29:05 -04:00
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
2020-01-25 16:53:44 -05:00
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
2022-09-12 18:29:05 -04:00
- name: Run ${{ matrix.lua }} tests
run: |
cargo test --features "${{ matrix.lua }},vendored"
cargo test --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot"
cargo test --features "${{ matrix.lua }},vendored,async,serialize,macros,parking_lot,unstable"
2022-09-12 18:29:05 -04:00
shell: bash
- name: Run compile tests (macos lua54)
if: ${{ matrix.os == 'macos-latest' && matrix.lua == 'lua54' }}
run: |
TRYBUILD=overwrite cargo test --features "${{ matrix.lua }},vendored" -- --ignored
2022-12-22 11:30:14 -05:00
TRYBUILD=overwrite cargo test --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable" -- --ignored
2022-09-12 18:29:05 -04:00
shell: bash
test_with_sanitizer:
name: Test with address sanitizer
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
2022-09-12 18:29:05 -04:00
os: [ubuntu-22.04]
rust: [nightly]
lua: [lua54, lua53, lua52, lua51, luajit, luau, luau-jit, luau-vector4]
include:
2022-09-12 18:29:05 -04:00
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
2022-09-12 18:29:05 -04:00
- name: Run ${{ matrix.lua }} tests with address sanitizer
run: |
2022-12-22 11:30:14 -05:00
cargo test --tests --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable" --target x86_64-unknown-linux-gnu -- --skip test_too_many_recursions
2022-09-12 18:29:05 -04:00
shell: bash
env:
RUSTFLAGS: -Z sanitizer=address
2020-01-25 16:53:44 -05:00
test_modules:
2021-01-16 08:32:38 -05:00
name: Test modules
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
2022-09-12 18:29:05 -04:00
os: [ubuntu-22.04, macos-latest]
rust: [stable]
lua: [lua54, lua53, lua52, lua51, luajit]
include:
2022-09-12 18:29:05 -04:00
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.target }}
- uses: Swatinem/rust-cache@v2
2022-09-12 18:29:05 -04:00
- name: Run ${{ matrix.lua }} module tests
run: |
(cd tests/module && cargo build --release --features "${{ matrix.lua }}")
(cd tests/module/loader && cargo test --release --features "${{ matrix.lua }},vendored")
shell: bash
test_modules_windows:
name: Test modules on Windows
runs-on: windows-latest
needs: build
strategy:
matrix:
lua: [lua54, luajit]
defaults:
run:
2020-12-12 15:37:17 -05:00
shell: msys2 {0}
steps:
2022-09-12 18:29:05 -04:00
- uses: msys2/setup-msys2@v2
- uses: actions/checkout@v3
- name: Install Rust & Lua
run: |
pacman -S --noconfirm mingw-w64-x86_64-rust mingw-w64-x86_64-lua mingw-w64-x86_64-luajit mingw-w64-x86_64-pkg-config
- name: Run ${{ matrix.lua }} module tests
run: |
(cd tests/module && cargo build --release --features "${{ matrix.lua }}")
(cd tests/module/loader && cargo test --release --features "${{ matrix.lua }}")
2020-01-25 16:53:44 -05:00
rustfmt:
name: Rustfmt
2022-09-12 18:29:05 -04:00
runs-on: ubuntu-22.04
2020-01-25 16:53:44 -05:00
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt
- run: cargo fmt -- --check
clippy:
name: Clippy check
2022-09-12 18:29:05 -04:00
runs-on: ubuntu-22.04
2020-06-01 16:36:59 -04:00
strategy:
matrix:
lua: [lua54, lua53, lua52, lua51, luajit, luau, luau-jit, luau-vector4]
steps:
2022-09-12 18:29:05 -04:00
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
2022-09-12 18:29:05 -04:00
toolchain: nightly
components: clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
2022-12-22 11:30:14 -05:00
args: --features "${{ matrix.lua }},vendored,async,send,serialize,macros,parking_lot,unstable"