name: CI on: [push, pull_request] jobs: build: name: Build runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-18.04, macos-latest, windows-latest] rust: [stable] lua: [lua54, lua53, lua52, lua51, luajit] include: - os: ubuntu-18.04 target: x86_64-unknown-linux-gnu - os: macos-latest target: x86_64-apple-darwin - os: windows-latest target: x86_64-pc-windows-msvc steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} target: ${{ matrix.target }} override: true - name: Build ${{ matrix.lua }} vendored run: | cargo build --release --no-default-features --features "${{ matrix.lua }} vendored" cargo build --release --no-default-features --features "${{ matrix.lua }} vendored async send" shell: bash - name: Build ${{ matrix.lua }} pkg-config if: ${{ matrix.os == 'ubuntu-18.04' && matrix.lua != 'lua54' }} run: | sudo apt-get update -y sudo apt-get install -y --no-install-recommends liblua5.3-dev liblua5.2-dev liblua5.1-0-dev libluajit-5.1-dev cargo build --release --no-default-features --features "${{ matrix.lua }}" test: name: Test runs-on: ${{ matrix.os }} needs: build strategy: matrix: os: [ubuntu-18.04, macos-latest, windows-latest] rust: [stable] lua: [lua54, lua53, lua52, lua51, luajit] include: - os: ubuntu-18.04 target: x86_64-unknown-linux-gnu - os: macos-latest target: x86_64-apple-darwin - os: windows-latest target: x86_64-pc-windows-msvc steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} target: ${{ matrix.target }} override: true - name: Run ${{ matrix.lua }} tests run: | cargo test --release --no-default-features --features "${{ matrix.lua }} vendored" cargo test --release --no-default-features --features "${{ matrix.lua }} vendored async send" shell: bash - name: Run compile tests if: ${{ matrix.os == 'ubuntu-18.04' && matrix.lua == 'lua53' }} run: | cargo test --release --no-default-features --features "${{ matrix.lua }} vendored" -- --ignored cargo test --release --no-default-features --features "${{ matrix.lua }} vendored async send" -- --ignored shell: bash rustfmt: name: Rustfmt runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable components: rustfmt override: true - run: cargo fmt -- --check