Add tests and remove example #156
Workflow file for this run
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: | |
workflow_dispatch: | |
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-tests: | |
name: Build tests | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 20 | |
steps: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Build tests | |
sha: ${{ github.sha }} | |
- uses: actions/checkout@v3 | |
- 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 tests in debug mode | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cargo +nightly vita build --default-title-id SYSTEST01 vpk -- --tests --features SceLibKernel_stub | |
- name: Build tests in release mode | |
env: | |
VITASDK: /opt/vitasdk | |
run: | | |
cargo +nightly vita build --default-title-id SYSTEST01 vpk -- --tests --release --features SceLibKernel_stub | |
- name: Upload debug build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: std-hello-world-debug-build | |
path: target/armv7-sony-vita-newlibeabihf/debug/deps/vitasdk_sys-*.* | |
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/deps/vitasdk_sys-*.* | |
if-no-files-found: error | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Build example | |
sha: ${{ github.sha }} | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 10 | |
steps: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Clippy | |
sha: ${{ github.sha }} | |
- uses: actions/checkout@v3 | |
- name: Restore vitasdk cache | |
uses: actions/cache/restore@v3 | |
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 --features all-stubs -- -Dclippy::all -Dwarnings | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Clippy | |
sha: ${{ github.sha }} | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Rustfmt | |
sha: ${{ github.sha }} | |
- 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 | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Rustfmt | |
sha: ${{ github.sha }} | |
missing-libs: | |
name: Check missing libs | |
runs-on: ubuntu-latest | |
needs: install-vitasdk | |
timeout-minutes: 10 | |
steps: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Check missing libs | |
sha: ${{ github.sha }} | |
- 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 | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Check missing libs | |
sha: ${{ github.sha }} | |
# 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: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Check bindings | |
sha: ${{ github.sha }} | |
- 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 | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Check bindings | |
sha: ${{ github.sha }} | |
doc: | |
name: Doc | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
RUSTDOCFLAGS: -D warnings | |
steps: | |
- name: Set commit status as pending | |
uses: myrotvorets/[email protected] | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: pending | |
context: Doc | |
sha: ${{ github.sha }} | |
- uses: actions/checkout@v3 | |
- 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 | |
- name: Set final commit status | |
uses: myrotvorets/[email protected] | |
if: always() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
status: ${{ job.status }} | |
context: Doc | |
sha: ${{ github.sha }} |