Skip to content

Proxy derive macros, rustc plugin codegen, safety improvements #504

Proxy derive macros, rustc plugin codegen, safety improvements

Proxy derive macros, rustc plugin codegen, safety improvements #504

Workflow file for this run

on:
pull_request:
push:
branches:
- main
name: Check and Lint
jobs:
check:
name: Check
runs-on: ${{ matrix.run_args.os }}
strategy:
matrix:
run_args: [
{os: windows-latest, lua: lua54, cross: null},
{os: macOS-latest, lua: lua54, cross: null},
# {os: ubuntu-latest, lua: lua54, cross: aarch64-unknown-linux-gnu}, see https://github.com/houseabsolute/actions-rust-cross/issues/15
{os: ubuntu-latest, lua: lua51, cross: null},
{os: ubuntu-latest, lua: lua52, cross: null},
{os: ubuntu-latest, lua: lua53, cross: null},
{os: ubuntu-latest, lua: lua54, cross: null},
{os: ubuntu-latest, lua: luajit, cross: null},
{os: ubuntu-latest, lua: luajit52, cross: null}
]
steps:
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
if: runner.os == 'linux'
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Rust Cache
uses: Swatinem/[email protected]
# for x86 builds
- if: matrix.run_args.cross == null
uses: actions-rs/cargo@v1
with:
command: check
args: --workspace --features=${{ matrix.run_args.lua }},rhai,teal,lua_script_api,rhai_script_api,rune
# for non x86 cross-compiled builds
- if: matrix.run_args.cross != null
name: Clear space
run: sudo rm -rf /usr/share/dotnet; sudo rm -rf /opt/ghc; sudo rm -rf "/usr/local/share/boost"; sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- if: matrix.run_args.cross != null
uses: houseabsolute/actions-rust-cross@v0
with:
command: check
target: ${{ matrix.run_args.cross }}
args: --workspace --features=${{ matrix.run_args.lua }},rhai,teal,lua_script_api,rhai_script_api,rune --profile=ephemeral-build
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
components: rustfmt
toolchain: stable
override: true
- name: Rust Cache
uses: Swatinem/[email protected]
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
override: true
- name: Rust Cache
uses: Swatinem/[email protected]
- uses: actions-rs/cargo@v1
with:
command: clippy
args: --features=lua54,rhai,teal,lua_script_api,rhai_script_api,rune --profile=ephemeral-build -- -D warnings
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Clear space
run: sudo rm -rf /usr/share/dotnet; sudo rm -rf /opt/ghc; sudo rm -rf "/usr/local/share/boost"; sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- name: Checkout
uses: actions/checkout@v3
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Rust Cache
uses: Swatinem/[email protected]
- uses: actions-rs/cargo@v1
with:
command: test
args: --workspace --features=lua54,rhai,teal,lua_script_api,rhai_script_api,rune --profile=ephemeral-build
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- name: Install alsa and udev
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Rust Cache
uses: Swatinem/[email protected]
- name: Find docs.rs features
run: echo "DOCS_FEATURES=$(cargo metadata --no-deps | python -c "import sys,json; [print(','.join(x['metadata']['docs.rs']['features'])) for x in json.load(sys.stdin)['packages'] if x['name'] == 'bevy_mod_scripting']")" >> $GITHUB_OUTPUT
id: features
- uses: actions-rs/cargo@v1
with:
command: doc
args: --workspace --features=${{ steps.features.outputs.DOCS_FEATURES }} --profile=ephemeral-build