Update vita-headers bindings #160
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
# If you update LLVM_VERSION, remember to also update `update-bindings.yml` | |
# and `README.md` | |
LLVM_VERSION: "16" | |
jobs: | |
install-vitasdk: | |
uses: ./.github/workflows/setup-vitasdk.yml | |
with: | |
path: /opt/vitasdk | |
build-example: | |
name: Build example | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Restore vitasdk cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: /opt/vitasdk | |
key: ${{ runner.os }}-vitasdk | |
fail-on-cache-miss: true | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} | |
- name: Install cargo-vita | |
continue-on-error: true | |
run: | | |
cargo install cargo-vita | |
- name: Install rust nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
profile: minimal | |
components: rust-src | |
- name: Add Vita SDK tools to path | |
run: | | |
echo "/opt/vitasdk/bin" >> $GITHUB_PATH | |
- name: Build example in debug mode | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cd examples/std-hello-world | |
cargo +nightly vita build vpk | |
- name: Build example in release mode | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cd examples/std-hello-world | |
cargo +nightly vita build vpk --release | |
- name: Upload debug build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: std-hello-world-debug-build | |
path: target/armv7-sony-vita-newlibeabihf/debug/std-hello-world.* | |
if-no-files-found: error | |
- name: Upload release build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: std-hello-world-release-build | |
path: target/armv7-sony-vita-newlibeabihf/release/std-hello-world.* | |
if-no-files-found: error | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Restore vitasdk cache | |
uses: actions/cache/restore@v4 | |
with: | |
path: /opt/vitasdk | |
key: ${{ runner.os }}-vitasdk | |
fail-on-cache-miss: true | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
components: clippy | |
profile: minimal | |
override: true | |
- name: Run clippy | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cargo clippy --tests --workspace -- -Dclippy::all -Dwarnings | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt | |
profile: minimal | |
override: true | |
- name: Run rustfmt | |
run: | | |
cargo fmt --check --all | |
missing-libs: | |
name: Check missing libs | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Restore vitasdk cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: /opt/vitasdk | |
key: ${{ runner.os }}-vitasdk | |
fail-on-cache-miss: true | |
- name: Cache LLVM and Clang | |
id: cache-llvm | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{ runner.temp }}/llvm | |
key: llvm | |
- name: Install LLVM and Clang | |
uses: KyleMayes/install-llvm-action@v1 | |
with: | |
version: ${{ env.LLVM_VERSION }} | |
directory: ${{ runner.temp }}/llvm | |
cached: ${{ steps.cache-llvm.outputs.cache-hit }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
- name: Run build-util | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cargo run --profile build-util -p vitasdk-sys-build-util -- stub-libs --missing-libs --fail-if-any | |
# Checks if there's no diff when regenerating bindings | |
check-bindings: | |
name: Check bindings | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Restore vitasdk cache | |
uses: actions/cache/restore@v3 | |
with: | |
path: /opt/vitasdk | |
key: ${{ runner.os }}-vitasdk | |
fail-on-cache-miss: true | |
- name: Cache LLVM and Clang | |
id: cache-llvm | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{ runner.temp }}/llvm | |
key: llvm | |
- name: Install LLVM and Clang | |
uses: KyleMayes/install-llvm-action@v1 | |
with: | |
version: ${{ env.LLVM_VERSION }} | |
directory: ${{ runner.temp }}/llvm | |
cached: ${{ steps.cache-llvm.outputs.cache-hit }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
- name: Regenerate bindings | |
env: | |
VITASDK: /opt/vitasdk | |
# From clang-sys | |
LIBCLANG_PATH: ${{ runner.temp }}/llvm/lib | |
LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm/bin/llvm-config | |
run: | | |
cargo run --profile build-util -p vitasdk-sys-build-util -- bindgen | |
- name: Check diff | |
run: | | |
git add . && git diff --quiet && git diff --cached --quiet | |
doc: | |
name: Doc | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
RUSTDOCFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
components: rust-docs, rust-src | |
profile: minimal | |
override: true | |
- name: Run cargo doc | |
run: DOCS_RS=1 RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --target armv7-sony-vita-newlibeabihf -Z build-std |